home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / extremedemon.lha / mountdemon1 < prev    next >
Text File  |  1980-01-01  |  51KB  |  2,530 lines

  1.     section andy,code_c
  2.     opt c-
  3.     incdir    df1:
  4.  
  5.     ;Startup V2.0 Rev.28/2/90
  6.  
  7. startlist1    equ    38
  8. startlist2    equ    50
  9.  
  10. plnw        equ    40
  11. plnh        equ    128
  12. plnsize        equ    plnw*plnh
  13. plnnum        equ    3
  14. plndata        equ    plnsize*plnnum
  15. buggerbuffer    equ    $ce4+80
  16.  
  17. Start2:    
  18.     move.l    4,a6
  19.     move.l    #$10002,d1
  20.     move.l    #plndata,d0
  21.     jsr    -198(a6)
  22.     cmp.l    #$00,d0
  23.     beq    error
  24.     move.l    d0,plnbase
  25.  
  26.     move.l    4,a6
  27.     move.l    #$10002,d1
  28.     move.l    #buggerbuffer,d0
  29.     jsr    -198(a6)
  30.     cmp.l    #$00,d0
  31.     beq    error
  32.     move.l    d0,scrlbase
  33.  
  34.  
  35.     move.w    #$0080,$dff096
  36.     move.w    $dff01c,sysint
  37.     or.w    #$c000,sysint
  38.     move.w    #$7fff,$dff09a
  39.     move.l    $6c,int3save
  40.     move.l    #isr,$6c
  41.     move.l    #newcopper,$dff080
  42.     move.w    #$0200,$dff100
  43.  
  44.     move.l    #spec0,d0
  45.     move.l    d0,stor
  46.     move.w    stor,sp0+2
  47.     move.w    stor+2,sp0+6
  48.     move.l    #spec1,d0
  49.     move.l    d0,stor
  50.     move.w    stor,sp1+2
  51.     move.w    stor+2,sp1+6
  52.     move.l    #spec2,d0
  53.     move.l    d0,stor
  54.     move.w    stor,sp2+2
  55.     move.w    stor+2,sp2+6
  56.     move.l    #spec3,d0
  57.     move.l    d0,stor
  58.     move.w    stor,sp3+2
  59.     move.w    stor+2,sp3+6
  60.  
  61.     move.l    plnbase,a1    ;mount range
  62.     move.l    #plnsize,d0
  63.     move.l    a1,stor
  64.     move.l    stor,pln1
  65.     move.w    stor,bp4+2
  66.     move.w    stor+2,bp4+6
  67.     add.l    d0,stor
  68.     move.l    stor,pln2
  69.     move.w    stor,bp5+2
  70.     move.w    stor+2,bp5+6
  71.     add.l    d0,stor
  72.     move.l    stor,pln3
  73.     move.w    stor,bp6+2
  74.     move.w    stor+2,bp6+6
  75.  
  76.     move.l    #logo,d0    ;top of logo    
  77.     sub.l    #2,d0
  78.     move.w    d0,bp11+6
  79.     swap    d0
  80.     move.w    d0,bp11+2
  81.     swap    d0
  82.     add.l    #3840,d0
  83.     move.w    d0,bp12+6
  84.     swap    d0
  85.     move.w    d0,bp12+2
  86.     swap    d0
  87.     add.l    #3840,d0
  88.     move.w    d0,bp13+6
  89.     swap    d0
  90.     move.w    d0,bp13+2
  91.     swap    d0
  92.     add.l    #3840,d0
  93.     move.l    d0,a0
  94.     add.l    #2,a0
  95.     move.l    #cols+2,a1
  96.     moveq.l    #7,d0
  97. .lp4:    move.w    (a0)+,(a1)+
  98.     add.l    #2,a1
  99.     dbra    d0,.lp4
  100.  
  101.     move.l    #logo+2000,d0    ;bot of logo
  102.     sub.l    #2,d0
  103.     move.w    d0,bp1+6
  104.     swap    d0
  105.     move.w    d0,bp1+2
  106.     swap    d0
  107.     add.l    #3840,d0
  108.     move.w    d0,bp2+6
  109.     swap    d0
  110.     move.w    d0,bp2+2
  111.     swap    d0
  112.     add.l    #3840,d0
  113.     move.w    d0,bp3+6
  114.     swap    d0
  115.     move.w    d0,bp3+2
  116.     swap    d0
  117.  
  118.     move.l    #plndat,stor
  119.     move.w    stor,bpln1+2
  120.     move.w    stor+2,bpln1+6
  121.  
  122.     move.l    #20479,d0
  123.     lea    plndat,a0
  124.     lea    plndat2,a1
  125. .lp:    move.l    (a0)+,(a1)
  126.     eor.l    #-1,(a1)+
  127.     dbra    d0,.lp
  128.  
  129.     move.l    #0,d0
  130.     move.l    #0,d1
  131.     lea    plnaddr,a0
  132.     move.l    #plndat,d2
  133. .lp2:    move.l    (a0,d1),a1
  134.     move.w    d2,6(a1)
  135.     swap    d2
  136.     move.w    d2,2(a1)
  137.     swap    d2
  138.     add.l    #40,d2
  139.     add.l    #4,d1
  140.     add.l    #1,d0
  141.     cmp.l    #128,d0
  142.     bne    .lp2
  143.  
  144.     move.l    #0,d0
  145.     move.l    #0,d1
  146.     move.l    #0,d2
  147.     
  148.     lea    ref,a0
  149. .lp3:    move.l    pln1,d3
  150.     add.l    #77*42,d3
  151.     move.l    d0,d1
  152.     mulu    #84,d1
  153.     sub.l    d1,d3
  154.     move.l    d3,d4
  155.     add.l    #plnsize,d4
  156.     move.l    d4,d5
  157.     add.l    #plnsize,d5
  158.  
  159.     move.w    d3,6(a0)
  160.     swap    d3
  161.     move.w    d3,2(a0)
  162.  
  163.     move.w    d4,14(a0)
  164.     swap    d4
  165.     move.w    d4,10(a0)
  166.  
  167.     move.w    d5,22(a0)
  168.     swap    d5
  169.     move.w    d5,18(a0)
  170.  
  171.     add.l    #1,d0
  172.     add.l    #36,a0
  173.     cmp.l    #39,d0
  174.     bne    .lp3
  175.  
  176.     move.l    #blnk,d3    ;blank under mount ref down to top of scrl
  177.  
  178. .lp5:    move.w    d3,6(a0)
  179.     move.w    d3,14(a0)
  180.     move.w    d3,22(a0)
  181.     swap    d3
  182.     move.w    d3,2(a0)
  183.     move.w    d3,10(a0)
  184.     move.w    d3,18(a0)
  185.     swap    d3
  186.  
  187.     add.l    #1,d0
  188.     add.l    #36,a0
  189.     cmp.l    #59,d0
  190.     bne    .lp5
  191.  
  192.     lea    ref3,a0
  193.     move.l    #59,d0
  194.     move.l    scrlbase,d3    ;scrl
  195.     move.l    d3,d4
  196.     add.l    #$44c,d4
  197.     move.l    d4,d5
  198.     add.l    #$44c,d5
  199.  
  200. .lp8:    move.w    d3,6(a0)
  201.     move.w    d4,14(a0)
  202.     move.w    d5,22(a0)
  203.     swap    d3
  204.     swap    d4
  205.     swap    d5
  206.     move.w    d3,2(a0)
  207.     move.w    d4,10(a0)
  208.     move.w    d5,18(a0)
  209.     swap    d3
  210.     swap    d4
  211.     swap    d5
  212.  
  213.     add.l    #44,d3
  214.     add.l    #44,d4
  215.     add.l    #44,d5
  216.     add.l    #1,d0
  217.     add.l    #36,a0
  218.     cmp.l    #78,d0
  219.     bne    .lp8
  220.  
  221.  
  222. .lp9:    move.w    d3,6(a0)
  223.     move.w    d4,14(a0)
  224.     move.w    d5,22(a0)
  225.     swap    d3
  226.     swap    d4
  227.     swap    d5
  228.     move.w    d3,2(a0)
  229.     move.w    d4,10(a0)
  230.     move.w    d5,18(a0)
  231.     swap    d3
  232.     swap    d4
  233.     swap    d5
  234.  
  235.     add.l    #44,d3
  236.     add.l    #44,d4
  237.     add.l    #44,d5
  238.     add.l    #1,d0
  239.     add.l    #36,a0
  240.     cmp.l    #84,d0
  241.     bne    .lp9
  242.  
  243.     lea    ref4,a0        ;blank from 0 down
  244.     move.l    #$2a,d0
  245.  
  246.     move.l    #blnk,d3
  247.  
  248. .lp6:    move.w    d3,6(a0)
  249.     move.w    d3,14(a0)
  250.     move.w    d3,22(a0)
  251.     swap    d3
  252.     move.w    d3,2(a0)
  253.     move.w    d3,10(a0)
  254.     move.w    d3,18(a0)
  255.     swap    d3
  256.  
  257.     add.l    #36,a0
  258.     dbra    d0,.lp6
  259.  
  260.     lea    ref2,a0        ;line between scrl & ref
  261.     move.w    d3,6(a0)
  262.     move.w    d3,14(a0)
  263.     move.w    d3,22(a0)
  264.     swap    d3
  265.     move.w    d3,2(a0)
  266.     move.w    d3,10(a0)
  267.     move.w    d3,18(a0)
  268.     swap    d3
  269.  
  270.     move.w    d3,bp1a+6
  271.     move.w    d3,bp1b+6
  272.     move.w    d3,bp1c+6
  273.     move.w    d3,bp2a+6
  274.     move.w    d3,bp2b+6
  275.     move.w    d3,bp2c+6
  276.     move.w    d3,bp3a+6
  277.     move.w    d3,bp3b+6
  278.     move.w    d3,bp3c+6
  279.     swap    d3
  280.     move.w    d3,bp1a+2
  281.     move.w    d3,bp1b+2
  282.     move.w    d3,bp1c+2
  283.     move.w    d3,bp2a+2
  284.     move.w    d3,bp2b+2
  285.     move.w    d3,bp2c+2
  286.     move.w    d3,bp3a+2
  287.     move.w    d3,bp3b+2
  288.     move.w    d3,bp3c+2
  289.  
  290.     lea    ref4,a0        ;scrl ref
  291.     move.l    scrlbase,d3
  292.     add.l    #24*44,d3
  293.     move.l    d3,d4
  294.     add.l    #$44c,d4
  295.     move.l    d4,d5
  296.     add.l    #$44c,d5
  297.  
  298.     move.l    #12,d0
  299. .lpa:    move.w    d3,6(a0)
  300.     move.w    d4,14(a0)
  301.     move.w    d5,22(a0)
  302.     swap    d3
  303.     swap    d4
  304.     swap    d5
  305.     move.w    d3,2(a0)
  306.     move.w    d4,10(a0)
  307.     move.w    d5,18(a0)
  308.     swap    d3
  309.     swap    d4
  310.     swap    d5
  311.  
  312.     sub.l    #88,d3
  313.     sub.l    #88,d4
  314.     sub.l    #88,d5
  315.  
  316.     add.l    #36,a0
  317.     dbra    d0,.lpa
  318.  
  319.     move.w    #$8480,$dff096    
  320.     
  321.     jsr    start
  322.  
  323.     move.b    #2,$bfe001
  324.  
  325. wait:    jsr    task            ;jmp to our sub.
  326.     btst    #6,$bfe001        ;wait for mouse.
  327.     bne    wait
  328.     move.l    4,a6
  329.     move.l    #gfxname,a1
  330.     moveq.l    #0,d0
  331.     jsr    -552(a6)
  332.     move.l    d0,a4
  333.     move.l    startlist1(a4),$dff080
  334.     move.l    startlist2(a4),$dff084
  335.     clr.w    $dff088    
  336.     move.l    int3save,$6c
  337.     move.w    sysint,$dff09a
  338.     move.w    #$8080,$dff096
  339.     move.w    #$0400,$dff096
  340.     move.l    4,a6
  341.     move.l    plnbase,a1
  342.     move.l    #plndata,d0
  343.     jsr    -210(a6)
  344.     move.l    4,a6
  345.     move.l    scrlbase,a1
  346.     move.l    #buggerbuffer,d0
  347.     jsr    -210(a6)
  348.     jsr    stop
  349.     clr.l    d0
  350. error:    move.w    #$0fff,$dff180
  351.     rts                ;exit.
  352.  
  353. newcopper:                    
  354.     DC.W    $0100,$3200
  355.     DC.W    $0102,$0000
  356.     dc.w    $0104,%0000000001010100
  357. bp11:    DC.W    $00e0,$0000,$00e2,$0000
  358. bp12:    DC.W    $00e4,$0000,$00e6,$0000
  359. bp13:    DC.W    $00e8,$0000,$00ea,$0000
  360. bp5:    DC.W    $00ec,$0000,$00ee,$0000
  361. bp3:    DC.W    $00f0,$0000,$00f2,$0000
  362. bp6:    DC.W    $00f4,$0000,$00f6,$0000
  363.     DC.W    $008E,$2c81,$0090,$2cc1                                 
  364.     DC.W    $0092,$0030,$0094,$00d0
  365. mod:    DC.W    $0108,-2,$010a,-2
  366. cols:    dc.w    $0180,$0000
  367.     dc.w    $0182,$0000
  368.     dc.w    $0184,$0000
  369.     dc.w    $0186,$0000
  370.     dc.w    $0188,$0000
  371.     dc.w    $018a,$0000
  372.     dc.w    $018c,$0000
  373.     dc.w    $018e,$0000
  374.  
  375.     dc.w    $0198,$0b74
  376.     dc.w    $019a,$0962
  377.     dc.w    $019c,$0851
  378.     dc.w    $019e,$0740
  379.     dc.w    $0192,$0fca
  380.     dc.w    $0194,$0ea8
  381.     dc.w    $0196,$0c85
  382.     dc.w    $01a2,$0f00
  383.     dc.w    $01a4,$0800
  384.     dc.w    $01a6,$0c00
  385.     dc.w    $01aa,$00f0
  386.     dc.w    $01ac,$0080
  387.     dc.w    $01ae,$00c0
  388. sp0:    dc.w    $0120,$0000,$0122,$0000    
  389. sp1:    dc.w    $0124,$0000,$0126,$0000    
  390. sp2:    dc.w    $0128,$0000,$012a,$0000    
  391. sp3:    dc.w    $012c,$0000,$012e,$0000    
  392. sp4:    dc.w    $0130,$0000,$0132,$0000    
  393. sp5:    dc.w    $0134,$0000,$0136,$0000    
  394. sp6:    dc.w    $0138,$0000,$013a,$0000    
  395. sp7:    dc.w    $013c,$0000,$013e,$0000    
  396.  
  397.     dc.w    $5e01,$fffe
  398.     DC.W    $0100,$6600
  399.     dc.w    $010a,0,$0104,%0000000001000100
  400. bp1:    DC.W    $00e0,$0000,$00e2,$0000
  401. bp4:    DC.W    $00e4,$0000,$00e6,$0000
  402. bp2:    DC.W    $00e8,$0000,$00ea,$0000
  403.     
  404.  
  405.  
  406.     dc.w    $8c01,$fffe
  407. bp1a:    DC.W    $00e0,$0000,$00e2,$0000
  408. bp2a:    DC.W    $00e8,$0000,$00ea,$0000
  409. bp3a:    DC.W    $00f0,$0000,$00f2,$0000
  410.     dc.w    $8d01,$fffe
  411. bp1b:    DC.W    $00e0,$0000,$00e2,$0000
  412. bp2b:    DC.W    $00e8,$0000,$00ea,$0000
  413. bp3b:    DC.W    $00f0,$0000,$00f2,$0000
  414.     dc.w    $8e01,$fffe
  415. bp1c:    DC.W    $00e0,$0000,$00e2,$0000
  416. bp2c:    DC.W    $00e8,$0000,$00ea,$0000
  417. bp3c:    DC.W    $00f0,$0000,$00f2,$0000
  418.  
  419.  
  420.     dc.w    $ab01,$fffe
  421.  
  422.     dc.w    $0190,$0777
  423.     dc.w    $0192,$0fff
  424.     dc.w    $0194,$0eee
  425.     dc.w    $0196,$0ddd    
  426.     dc.w    $0198,$0ccc
  427.     dc.w    $019a,$0bbb
  428.     dc.w    $019c,$0aaa
  429.     dc.w    $019e,$0999
  430.     dc.w    $0180,$0003    ;poo
  431.     dc.w    $0186,$008a
  432.     dc.w    $0188,$0059
  433.     dc.w    $018a,$0038
  434.     dc.w    $018c,$0016
  435.     dc.w    $018e,$0004
  436.     dc.w    $0182,$00ff
  437.     dc.w    $0184,$00bd
  438.  
  439.     dc.w    $ac01,$fffe
  440.     DC.W    $0100,$4200
  441. ref:    DC.W    $00e0,$0000,$00e2,$0000
  442.     DC.W    $00e4,$0000,$00e6,$0000
  443.     DC.W    $00e8,$0000,$00ea,$0000
  444. bpln1:    DC.W    $00ec,$0000,$00ee,$0000
  445.  
  446.     dc.w    $ad01,$fffe
  447.     DC.W    $00e0,$0000,$00e2,$0000
  448.     DC.W    $00e4,$0000,$00e6,$0000
  449.     DC.W    $00e8,$0000,$00ea,$0000
  450. bpln2:    DC.W    $00ec,$0000,$00ee,$0000
  451.  
  452.     dc.w    $ae01,$fffe
  453.     DC.W    $00e0,$0000,$00e2,$0000
  454.     DC.W    $00e4,$0000,$00e6,$0000
  455.     DC.W    $00e8,$0000,$00ea,$0000
  456. bpln3:    DC.W    $00ec,$0000,$00ee,$0000
  457.  
  458.     dc.w    $af01,$fffe
  459.     DC.W    $00e0,$0000,$00e2,$0000
  460.     DC.W    $00e4,$0000,$00e6,$0000
  461.     DC.W    $00e8,$0000,$00ea,$0000
  462. bpln4:    DC.W    $00ec,$0000,$00ee,$0000
  463.  
  464.     dc.w    $b001,$fffe
  465.     DC.W    $00e0,$0000,$00e2,$0000
  466.     DC.W    $00e4,$0000,$00e6,$0000
  467.     DC.W    $00e8,$0000,$00ea,$0000
  468. bpln5:    DC.W    $00ec,$0000,$00ee,$0000
  469.  
  470.     dc.w    $b101,$fffe
  471.     DC.W    $00e0,$0000,$00e2,$0000
  472.     DC.W    $00e4,$0000,$00e6,$0000
  473.     DC.W    $00e8,$0000,$00ea,$0000
  474. bpln6:    DC.W    $00ec,$0000,$00ee,$0000
  475.  
  476.     dc.w    $b201,$fffe
  477.     DC.W    $00e0,$0000,$00e2,$0000
  478.     DC.W    $00e4,$0000,$00e6,$0000
  479.     DC.W    $00e8,$0000,$00ea,$0000
  480. bpln7:    DC.W    $00ec,$0000,$00ee,$0000
  481.  
  482.     dc.w    $b301,$fffe
  483.     DC.W    $00e0,$0000,$00e2,$0000
  484.     DC.W    $00e4,$0000,$00e6,$0000
  485.     DC.W    $00e8,$0000,$00ea,$0000
  486. bpln8:    DC.W    $00ec,$0000,$00ee,$0000
  487.  
  488.     dc.w    $b401,$fffe
  489.     DC.W    $00e0,$0000,$00e2,$0000
  490.     DC.W    $00e4,$0000,$00e6,$0000
  491.     DC.W    $00e8,$0000,$00ea,$0000
  492. bpln9:    DC.W    $00ec,$0000,$00ee,$0000
  493.  
  494.     dc.w    $b501,$fffe
  495.     DC.W    $00e0,$0000,$00e2,$0000
  496.     DC.W    $00e4,$0000,$00e6,$0000
  497.     DC.W    $00e8,$0000,$00ea,$0000
  498. bplna:    DC.W    $00ec,$0000,$00ee,$0000
  499.  
  500.     dc.w    $b601,$fffe
  501.     DC.W    $00e0,$0000,$00e2,$0000
  502.     DC.W    $00e4,$0000,$00e6,$0000
  503.     DC.W    $00e8,$0000,$00ea,$0000
  504. bplnb:    DC.W    $00ec,$0000,$00ee,$0000
  505.  
  506.     dc.w    $b701,$fffe
  507.     DC.W    $00e0,$0000,$00e2,$0000
  508.     DC.W    $00e4,$0000,$00e6,$0000
  509.     DC.W    $00e8,$0000,$00ea,$0000
  510. bplnc:    DC.W    $00ec,$0000,$00ee,$0000
  511.  
  512.     dc.w    $b801,$fffe
  513.     DC.W    $00e0,$0000,$00e2,$0000
  514.     DC.W    $00e4,$0000,$00e6,$0000
  515.     DC.W    $00e8,$0000,$00ea,$0000
  516. bplnd:    DC.W    $00ec,$0000,$00ee,$0000
  517.  
  518.     dc.w    $b901,$fffe
  519.     DC.W    $00e0,$0000,$00e2,$0000
  520.     DC.W    $00e4,$0000,$00e6,$0000
  521.     DC.W    $00e8,$0000,$00ea,$0000
  522. bplne:    DC.W    $00ec,$0000,$00ee,$0000
  523.  
  524.     dc.w    $ba01,$fffe
  525.     DC.W    $00e0,$0000,$00e2,$0000
  526.     DC.W    $00e4,$0000,$00e6,$0000
  527.     DC.W    $00e8,$0000,$00ea,$0000
  528. bplnf:    DC.W    $00ec,$0000,$00ee,$0000
  529.  
  530.     dc.w    $bb01,$fffe
  531.     DC.W    $00e0,$0000,$00e2,$0000
  532.     DC.W    $00e4,$0000,$00e6,$0000
  533.     DC.W    $00e8,$0000,$00ea,$0000
  534. bpln10:    DC.W    $00ec,$0000,$00ee,$0000
  535.  
  536.     dc.w    $bc01,$fffe
  537.     DC.W    $00e0,$0000,$00e2,$0000
  538.     DC.W    $00e4,$0000,$00e6,$0000
  539.     DC.W    $00e8,$0000,$00ea,$0000
  540. bpln11:    DC.W    $00ec,$0000,$00ee,$0000
  541.  
  542.     dc.w    $bd01,$fffe
  543.     DC.W    $00e0,$0000,$00e2,$0000
  544.     DC.W    $00e4,$0000,$00e6,$0000
  545.     DC.W    $00e8,$0000,$00ea,$0000
  546. bpln12:    DC.W    $00ec,$0000,$00ee,$0000
  547.  
  548.     dc.w    $be01,$fffe
  549.     DC.W    $00e0,$0000,$00e2,$0000
  550.     DC.W    $00e4,$0000,$00e6,$0000
  551.     DC.W    $00e8,$0000,$00ea,$0000
  552. bpln13:    DC.W    $00ec,$0000,$00ee,$0000
  553.  
  554.     dc.w    $bf01,$fffe
  555.     DC.W    $00e0,$0000,$00e2,$0000
  556.     DC.W    $00e4,$0000,$00e6,$0000
  557.     DC.W    $00e8,$0000,$00ea,$0000
  558. bpln14:    DC.W    $00ec,$0000,$00ee,$0000
  559.  
  560.     dc.w    $c001,$fffe
  561.     DC.W    $00e0,$0000,$00e2,$0000
  562.     DC.W    $00e4,$0000,$00e6,$0000
  563.     DC.W    $00e8,$0000,$00ea,$0000
  564. bpln15:    DC.W    $00ec,$0000,$00ee,$0000
  565.  
  566.     dc.w    $c101,$fffe
  567.     DC.W    $00e0,$0000,$00e2,$0000
  568.     DC.W    $00e4,$0000,$00e6,$0000
  569.     DC.W    $00e8,$0000,$00ea,$0000
  570. bpln16:    DC.W    $00ec,$0000,$00ee,$0000
  571.  
  572.     dc.w    $c201,$fffe
  573.     DC.W    $00e0,$0000,$00e2,$0000
  574.     DC.W    $00e4,$0000,$00e6,$0000
  575.     DC.W    $00e8,$0000,$00ea,$0000
  576. bpln17:    DC.W    $00ec,$0000,$00ee,$0000
  577.  
  578.     dc.w    $c301,$fffe
  579.     DC.W    $00e0,$0000,$00e2,$0000
  580.     DC.W    $00e4,$0000,$00e6,$0000
  581.     DC.W    $00e8,$0000,$00ea,$0000
  582. bpln18:    DC.W    $00ec,$0000,$00ee,$0000
  583.  
  584.     dc.w    $c401,$fffe
  585.     DC.W    $00e0,$0000,$00e2,$0000
  586.     DC.W    $00e4,$0000,$00e6,$0000
  587.     DC.W    $00e8,$0000,$00ea,$0000
  588. bpln19:    DC.W    $00ec,$0000,$00ee,$0000
  589.  
  590.     dc.w    $c501,$fffe
  591.     DC.W    $00e0,$0000,$00e2,$0000
  592.     DC.W    $00e4,$0000,$00e6,$0000
  593.     DC.W    $00e8,$0000,$00ea,$0000
  594. bpln1a:    DC.W    $00ec,$0000,$00ee,$0000
  595.  
  596.     dc.w    $c601,$fffe
  597.     DC.W    $00e0,$0000,$00e2,$0000
  598.     DC.W    $00e4,$0000,$00e6,$0000
  599.     DC.W    $00e8,$0000,$00ea,$0000
  600. bpln1b:    DC.W    $00ec,$0000,$00ee,$0000
  601.  
  602.     dc.w    $c701,$fffe
  603.     DC.W    $00e0,$0000,$00e2,$0000
  604.     DC.W    $00e4,$0000,$00e6,$0000
  605.     DC.W    $00e8,$0000,$00ea,$0000
  606. bpln1c:    DC.W    $00ec,$0000,$00ee,$0000
  607.  
  608.     dc.w    $c801,$fffe
  609.     DC.W    $00e0,$0000,$00e2,$0000
  610.     DC.W    $00e4,$0000,$00e6,$0000
  611.     DC.W    $00e8,$0000,$00ea,$0000
  612. bpln1d:    DC.W    $00ec,$0000,$00ee,$0000
  613.  
  614.     dc.w    $c901,$fffe
  615.     DC.W    $00e0,$0000,$00e2,$0000
  616.     DC.W    $00e4,$0000,$00e6,$0000
  617.     DC.W    $00e8,$0000,$00ea,$0000
  618. bpln1e:    DC.W    $00ec,$0000,$00ee,$0000
  619.  
  620.     dc.w    $ca01,$fffe
  621.     DC.W    $00e0,$0000,$00e2,$0000
  622.     DC.W    $00e4,$0000,$00e6,$0000
  623.     DC.W    $00e8,$0000,$00ea,$0000
  624. bpln1f:    DC.W    $00ec,$0000,$00ee,$0000
  625.  
  626.     dc.w    $cb01,$fffe
  627.     DC.W    $00e0,$0000,$00e2,$0000
  628.     DC.W    $00e4,$0000,$00e6,$0000
  629.     DC.W    $00e8,$0000,$00ea,$0000
  630. bpln20:    DC.W    $00ec,$0000,$00ee,$0000
  631.  
  632.     dc.w    $cc01,$fffe
  633.     DC.W    $00e0,$0000,$00e2,$0000
  634.     DC.W    $00e4,$0000,$00e6,$0000
  635.     DC.W    $00e8,$0000,$00ea,$0000
  636. bpln21:    DC.W    $00ec,$0000,$00ee,$0000
  637.  
  638.     dc.w    $cd01,$fffe
  639.     DC.W    $00e0,$0000,$00e2,$0000
  640.     DC.W    $00e4,$0000,$00e6,$0000
  641.     DC.W    $00e8,$0000,$00ea,$0000
  642. bpln22:    DC.W    $00ec,$0000,$00ee,$0000
  643.  
  644.     dc.w    $ce01,$fffe
  645.     DC.W    $00e0,$0000,$00e2,$0000
  646.     DC.W    $00e4,$0000,$00e6,$0000
  647.     DC.W    $00e8,$0000,$00ea,$0000
  648. bpln23:    DC.W    $00ec,$0000,$00ee,$0000
  649.  
  650.     dc.w    $cf01,$fffe
  651.     DC.W    $00e0,$0000,$00e2,$0000
  652.     DC.W    $00e4,$0000,$00e6,$0000
  653.     DC.W    $00e8,$0000,$00ea,$0000
  654. bpln24:    DC.W    $00ec,$0000,$00ee,$0000
  655.  
  656.     dc.w    $d001,$fffe
  657.     DC.W    $00e0,$0000,$00e2,$0000
  658.     DC.W    $00e4,$0000,$00e6,$0000
  659.     DC.W    $00e8,$0000,$00ea,$0000
  660. bpln25:    DC.W    $00ec,$0000,$00ee,$0000
  661.  
  662.     dc.w    $d101,$fffe
  663.     DC.W    $00e0,$0000,$00e2,$0000
  664.     DC.W    $00e4,$0000,$00e6,$0000
  665.     DC.W    $00e8,$0000,$00ea,$0000
  666. bpln26:    DC.W    $00ec,$0000,$00ee,$0000
  667.  
  668.     dc.w    $d201,$fffe
  669.     DC.W    $00e0,$0000,$00e2,$0000
  670.     DC.W    $00e4,$0000,$00e6,$0000
  671.     DC.W    $00e8,$0000,$00ea,$0000
  672. bpln27:    DC.W    $00ec,$0000,$00ee,$0000
  673.  
  674.     dc.w    $d301,$fffe
  675.     DC.W    $00e0,$0000,$00e2,$0000
  676.     DC.W    $00e4,$0000,$00e6,$0000
  677.     DC.W    $00e8,$0000,$00ea,$0000
  678. bpln28:    DC.W    $00ec,$0000,$00ee,$0000
  679.  
  680.     dc.w    $d401,$fffe
  681.     DC.W    $00e0,$0000,$00e2,$0000
  682.     DC.W    $00e4,$0000,$00e6,$0000
  683.     DC.W    $00e8,$0000,$00ea,$0000
  684. bpln29:    DC.W    $00ec,$0000,$00ee,$0000
  685.  
  686.     dc.w    $d501,$fffe
  687.     DC.W    $00e0,$0000,$00e2,$0000
  688.     DC.W    $00e4,$0000,$00e6,$0000
  689.     DC.W    $00e8,$0000,$00ea,$0000
  690. bpln2a:    DC.W    $00ec,$0000,$00ee,$0000
  691.  
  692.     dc.w    $d601,$fffe
  693.     DC.W    $00e0,$0000,$00e2,$0000
  694.     DC.W    $00e4,$0000,$00e6,$0000
  695.     DC.W    $00e8,$0000,$00ea,$0000
  696. bpln2b:    DC.W    $00ec,$0000,$00ee,$0000
  697.  
  698.     dc.w    $d701,$fffe
  699.     DC.W    $00e0,$0000,$00e2,$0000
  700.     DC.W    $00e4,$0000,$00e6,$0000
  701.     DC.W    $00e8,$0000,$00ea,$0000
  702. bpln2c:    DC.W    $00ec,$0000,$00ee,$0000
  703.  
  704.     dc.w    $d801,$fffe
  705.     DC.W    $00e0,$0000,$00e2,$0000
  706.     DC.W    $00e4,$0000,$00e6,$0000
  707.     DC.W    $00e8,$0000,$00ea,$0000
  708. bpln2d:    DC.W    $00ec,$0000,$00ee,$0000
  709.  
  710.     dc.w    $d901,$fffe
  711.     DC.W    $00e0,$0000,$00e2,$0000
  712.     DC.W    $00e4,$0000,$00e6,$0000
  713.     DC.W    $00e8,$0000,$00ea,$0000
  714. bpln2e:    DC.W    $00ec,$0000,$00ee,$0000
  715.  
  716.     dc.w    $da01,$fffe
  717.     DC.W    $00e0,$0000,$00e2,$0000
  718.     DC.W    $00e4,$0000,$00e6,$0000
  719.     DC.W    $00e8,$0000,$00ea,$0000
  720. bpln2f:    DC.W    $00ec,$0000,$00ee,$0000
  721.  
  722.     dc.w    $db01,$fffe
  723.     DC.W    $00e0,$0000,$00e2,$0000
  724.     DC.W    $00e4,$0000,$00e6,$0000
  725.     DC.W    $00e8,$0000,$00ea,$0000
  726. bpln30:    DC.W    $00ec,$0000,$00ee,$0000
  727.  
  728.     dc.w    $dc01,$fffe
  729.     DC.W    $00e0,$0000,$00e2,$0000
  730.     DC.W    $00e4,$0000,$00e6,$0000
  731.     DC.W    $00e8,$0000,$00ea,$0000
  732. bpln31:    DC.W    $00ec,$0000,$00ee,$0000
  733.  
  734.     dc.w    $dd01,$fffe
  735.     DC.W    $00e0,$0000,$00e2,$0000
  736.     DC.W    $00e4,$0000,$00e6,$0000
  737.     DC.W    $00e8,$0000,$00ea,$0000
  738. bpln32:    DC.W    $00ec,$0000,$00ee,$0000
  739.  
  740.     dc.w    $de01,$fffe
  741.     DC.W    $00e0,$0000,$00e2,$0000
  742.     DC.W    $00e4,$0000,$00e6,$0000
  743.     DC.W    $00e8,$0000,$00ea,$0000
  744. bpln33:    DC.W    $00ec,$0000,$00ee,$0000
  745.  
  746.     dc.w    $df01,$fffe
  747.     DC.W    $00e0,$0000,$00e2,$0000
  748.     DC.W    $00e4,$0000,$00e6,$0000
  749.     DC.W    $00e8,$0000,$00ea,$0000
  750. bpln34:    DC.W    $00ec,$0000,$00ee,$0000
  751.  
  752.     dc.w    $e001,$fffe
  753.     DC.W    $00e0,$0000,$00e2,$0000
  754.     DC.W    $00e4,$0000,$00e6,$0000
  755.     DC.W    $00e8,$0000,$00ea,$0000
  756. bpln35:    DC.W    $00ec,$0000,$00ee,$0000
  757.  
  758.     dc.w    $e101,$fffe
  759.     DC.W    $00e0,$0000,$00e2,$0000
  760.     DC.W    $00e4,$0000,$00e6,$0000
  761.     DC.W    $00e8,$0000,$00ea,$0000
  762. bpln36:    DC.W    $00ec,$0000,$00ee,$0000
  763.  
  764.     dc.w    $e201,$fffe
  765.     DC.W    $00e0,$0000,$00e2,$0000
  766.     DC.W    $00e4,$0000,$00e6,$0000
  767.     DC.W    $00e8,$0000,$00ea,$0000
  768. bpln37:    DC.W    $00ec,$0000,$00ee,$0000
  769.  
  770.  
  771.     dc.w    $e301,$fffe
  772.     DC.W    $00e0,$0000,$00e2,$0000
  773.     DC.W    $00e4,$0000,$00e6,$0000
  774.     DC.W    $00e8,$0000,$00ea,$0000
  775. bpln38:    DC.W    $00ec,$0000,$00ee,$0000
  776.  
  777.  
  778.     dc.w    $e401,$fffe
  779.     DC.W    $00e0,$0000,$00e2,$0000
  780.     DC.W    $00e4,$0000,$00e6,$0000
  781.     DC.W    $00e8,$0000,$00ea,$0000
  782. bpln39:    DC.W    $00ec,$0000,$00ee,$0000
  783.  
  784.     dc.w    $e501,$fffe
  785.     DC.W    $00e0,$0000,$00e2,$0000
  786.     DC.W    $00e4,$0000,$00e6,$0000
  787.     DC.W    $00e8,$0000,$00ea,$0000
  788. bpln3a:    DC.W    $00ec,$0000,$00ee,$0000
  789.  
  790.     dc.w    $e601,$fffe
  791.     DC.W    $00e0,$0000,$00e2,$0000
  792.     DC.W    $00e4,$0000,$00e6,$0000
  793.     DC.W    $00e8,$0000,$00ea,$0000
  794. bpln3b:    DC.W    $00ec,$0000,$00ee,$0000
  795.  
  796.     dc.w    $0182,$0fff
  797.     dc.w    $0184,$0e0e 
  798.     dc.w    $0186,$0c0c 
  799.     dc.w    $0188,$0a0a 
  800.     dc.w    $018a,$0909 
  801.     dc.w    $018c,$0707 
  802.     dc.w    $018e,$0fa0
  803.     dc.w    $0192,$0fff
  804.     dc.w    $0194,$0e0e
  805.     dc.w    $0196,$0c0c
  806.     dc.w    $0198,$0a0a
  807.     dc.w    $019a,$0909
  808.     dc.w    $019c,$0707
  809.     dc.w    $019e,$0fa0
  810.  
  811.  
  812.     dc.w    $e701,$fffe
  813. ref3:    DC.W    $00e0,$0000,$00e2,$0000
  814.     DC.W    $00e4,$0000,$00e6,$0000
  815.     DC.W    $00e8,$0000,$00ea,$0000
  816. bpln3c:    DC.W    $00ec,$0000,$00ee,$0000
  817.  
  818.     dc.w    $e801,$fffe
  819.     DC.W    $00e0,$0000,$00e2,$0000
  820.     DC.W    $00e4,$0000,$00e6,$0000
  821.     DC.W    $00e8,$0000,$00ea,$0000
  822. bpln3d:    DC.W    $00ec,$0000,$00ee,$0000
  823.  
  824.     dc.w    $e901,$fffe
  825.     DC.W    $00e0,$0000,$00e2,$0000
  826.     DC.W    $00e4,$0000,$00e6,$0000
  827.     DC.W    $00e8,$0000,$00ea,$0000
  828. bpln3e:    DC.W    $00ec,$0000,$00ee,$0000
  829.  
  830.     dc.w    $ea01,$fffe
  831.     DC.W    $00e0,$0000,$00e2,$0000
  832.     DC.W    $00e4,$0000,$00e6,$0000
  833.     DC.W    $00e8,$0000,$00ea,$0000
  834. bpln3f:    DC.W    $00ec,$0000,$00ee,$0000
  835.  
  836.     dc.w    $eb01,$fffe
  837.     DC.W    $00e0,$0000,$00e2,$0000
  838.     DC.W    $00e4,$0000,$00e6,$0000
  839.     DC.W    $00e8,$0000,$00ea,$0000
  840. bpln40:    DC.W    $00ec,$0000,$00ee,$0000
  841.  
  842.     dc.w    $ec01,$fffe
  843.     DC.W    $00e0,$0000,$00e2,$0000
  844.     DC.W    $00e4,$0000,$00e6,$0000
  845.     DC.W    $00e8,$0000,$00ea,$0000
  846. bpln41:    DC.W    $00ec,$0000,$00ee,$0000
  847.  
  848.     dc.w    $ed01,$fffe
  849.     DC.W    $00e0,$0000,$00e2,$0000
  850.     DC.W    $00e4,$0000,$00e6,$0000
  851.     DC.W    $00e8,$0000,$00ea,$0000
  852. bpln42:    DC.W    $00ec,$0000,$00ee,$0000
  853.  
  854.     dc.w    $ee01,$fffe
  855.     DC.W    $00e0,$0000,$00e2,$0000
  856.     DC.W    $00e4,$0000,$00e6,$0000
  857.     DC.W    $00e8,$0000,$00ea,$0000
  858. bpln43:    DC.W    $00ec,$0000,$00ee,$0000
  859.  
  860.     dc.w    $ef01,$fffe
  861.     DC.W    $00e0,$0000,$00e2,$0000
  862.     DC.W    $00e4,$0000,$00e6,$0000
  863.     DC.W    $00e8,$0000,$00ea,$0000
  864. bpln44:    DC.W    $00ec,$0000,$00ee,$0000
  865.  
  866.     dc.w    $f001,$fffe
  867.     DC.W    $00e0,$0000,$00e2,$0000
  868.     DC.W    $00e4,$0000,$00e6,$0000
  869.     DC.W    $00e8,$0000,$00ea,$0000
  870. bpln45:    DC.W    $00ec,$0000,$00ee,$0000
  871.  
  872.     dc.w    $f101,$fffe
  873.     DC.W    $00e0,$0000,$00e2,$0000
  874.     DC.W    $00e4,$0000,$00e6,$0000
  875.     DC.W    $00e8,$0000,$00ea,$0000
  876. bpln46:    DC.W    $00ec,$0000,$00ee,$0000
  877.  
  878.     dc.w    $f201,$fffe
  879.     DC.W    $00e0,$0000,$00e2,$0000
  880.     DC.W    $00e4,$0000,$00e6,$0000
  881.     DC.W    $00e8,$0000,$00ea,$0000
  882. bpln47:    DC.W    $00ec,$0000,$00ee,$0000
  883.  
  884.     dc.w    $f301,$fffe
  885.     DC.W    $00e0,$0000,$00e2,$0000
  886.     DC.W    $00e4,$0000,$00e6,$0000
  887.     DC.W    $00e8,$0000,$00ea,$0000
  888. bpln48:    DC.W    $00ec,$0000,$00ee,$0000
  889.  
  890.     dc.w    $f401,$fffe
  891.     DC.W    $00e0,$0000,$00e2,$0000
  892.     DC.W    $00e4,$0000,$00e6,$0000
  893.     DC.W    $00e8,$0000,$00ea,$0000
  894. bpln49:    DC.W    $00ec,$0000,$00ee,$0000
  895.  
  896.     dc.w    $f501,$fffe
  897.     DC.W    $00e0,$0000,$00e2,$0000
  898.     DC.W    $00e4,$0000,$00e6,$0000
  899.     DC.W    $00e8,$0000,$00ea,$0000
  900. bpln4a:    DC.W    $00ec,$0000,$00ee,$0000
  901.  
  902.     dc.w    $f601,$fffe
  903.     DC.W    $00e0,$0000,$00e2,$0000
  904.     DC.W    $00e4,$0000,$00e6,$0000
  905.     DC.W    $00e8,$0000,$00ea,$0000
  906. bpln4b:    DC.W    $00ec,$0000,$00ee,$0000
  907.  
  908.     dc.w    $f701,$fffe
  909.     DC.W    $00e0,$0000,$00e2,$0000
  910.     DC.W    $00e4,$0000,$00e6,$0000
  911.     DC.W    $00e8,$0000,$00ea,$0000
  912. bpln4c:    DC.W    $00ec,$0000,$00ee,$0000
  913.  
  914.     dc.w    $f801,$fffe
  915.     DC.W    $00e0,$0000,$00e2,$0000
  916.     DC.W    $00e4,$0000,$00e6,$0000
  917.     DC.W    $00e8,$0000,$00ea,$0000
  918. bpln4d:    DC.W    $00ec,$0000,$00ee,$0000
  919.  
  920.     dc.w    $f901,$fffe
  921.     DC.W    $00e0,$0000,$00e2,$0000
  922.     DC.W    $00e4,$0000,$00e6,$0000
  923.     DC.W    $00e8,$0000,$00ea,$0000
  924. bpln4e:    DC.W    $00ec,$0000,$00ee,$0000
  925.  
  926.     dc.w    $fa01,$fffe
  927.     DC.W    $00e0,$0000,$00e2,$0000
  928.     DC.W    $00e4,$0000,$00e6,$0000
  929.     DC.W    $00e8,$0000,$00ea,$0000
  930. bpln4f:    DC.W    $00ec,$0000,$00ee,$0000
  931.  
  932.     dc.w    $fb01,$fffe
  933.     DC.W    $00e0,$0000,$00e2,$0000
  934.     DC.W    $00e4,$0000,$00e6,$0000
  935.     DC.W    $00e8,$0000,$00ea,$0000
  936. bpln50:    DC.W    $00ec,$0000,$00ee,$0000
  937.  
  938.     dc.w    $fc01,$fffe
  939.     DC.W    $00e0,$0000,$00e2,$0000
  940.     DC.W    $00e4,$0000,$00e6,$0000
  941.     DC.W    $00e8,$0000,$00ea,$0000
  942. bpln51:    DC.W    $00ec,$0000,$00ee,$0000
  943.  
  944.     dc.w    $fd01,$fffe
  945.     DC.W    $00e0,$0000,$00e2,$0000
  946.     DC.W    $00e4,$0000,$00e6,$0000
  947.     DC.W    $00e8,$0000,$00ea,$0000
  948. bpln52:    DC.W    $00ec,$0000,$00ee,$0000
  949.  
  950.     dc.w    $fe01,$fffe
  951.     DC.W    $00e0,$0000,$00e2,$0000
  952.     DC.W    $00e4,$0000,$00e6,$0000
  953.     DC.W    $00e8,$0000,$00ea,$0000
  954. bpln53:    DC.W    $00ec,$0000,$00ee,$0000
  955.  
  956.     dc.w    $ff01,$fffe
  957.     DC.W    $00e0,$0000,$00e2,$0000
  958.     DC.W    $00e4,$0000,$00e6,$0000
  959.     DC.W    $00e8,$0000,$00ea,$0000
  960. bpln54:    DC.W    $00ec,$0000,$00ee,$0000
  961.     dc.w    $ffdf,$fffe    
  962.  
  963.     dc.w    $0001,$fffe
  964. ref2:    DC.W    $00e0,$0000,$00e2,$0000
  965.     DC.W    $00e4,$0000,$00e6,$0000
  966.     DC.W    $00e8,$0000,$00ea,$0000
  967. bpln55:    DC.W    $00ec,$0000,$00ee,$0000
  968.  
  969.     dc.w    $0182,$0888        ;black
  970.     dc.w    $0184,$0607 
  971.     dc.w    $0186,$0506 
  972.     dc.w    $0188,$0405 
  973.     dc.w    $018a,$0304 
  974.     dc.w    $018c,$0203 
  975.     dc.w    $018e,$0840
  976.  
  977.     dc.w    $0192,$0fff
  978.     dc.w    $0194,$0eae 
  979.     dc.w    $0196,$0c9c 
  980.     dc.w    $0198,$0a8a 
  981.     dc.w    $019a,$0979 
  982.     dc.w    $019c,$0767 
  983.     dc.w    $019e,$0fa4
  984.  
  985.     dc.w    $0101,$fffe
  986. ref4:    DC.W    $00e0,$0000,$00e2,$0000
  987.     DC.W    $00e4,$0000,$00e6,$0000
  988.     DC.W    $00e8,$0000,$00ea,$0000
  989. bpln56:    DC.W    $00ec,$0000,$00ee,$0000
  990.  
  991.     dc.w    $0201,$fffe
  992.     DC.W    $00e0,$0000,$00e2,$0000
  993.     DC.W    $00e4,$0000,$00e6,$0000
  994.     DC.W    $00e8,$0000,$00ea,$0000
  995. bpln57:    DC.W    $00ec,$0000,$00ee,$0000
  996.  
  997.     dc.w    $0301,$fffe
  998.     DC.W    $00e0,$0000,$00e2,$0000
  999.     DC.W    $00e4,$0000,$00e6,$0000
  1000.     DC.W    $00e8,$0000,$00ea,$0000
  1001. bpln58:    DC.W    $00ec,$0000,$00ee,$0000
  1002.  
  1003.     dc.w    $0401,$fffe
  1004.     DC.W    $00e0,$0000,$00e2,$0000
  1005.     DC.W    $00e4,$0000,$00e6,$0000
  1006.     DC.W    $00e8,$0000,$00ea,$0000
  1007. bpln59:    DC.W    $00ec,$0000,$00ee,$0000
  1008.  
  1009.     dc.w    $0501,$fffe
  1010.     DC.W    $00e0,$0000,$00e2,$0000
  1011.     DC.W    $00e4,$0000,$00e6,$0000
  1012.     DC.W    $00e8,$0000,$00ea,$0000
  1013. bpln5a:    DC.W    $00ec,$0000,$00ee,$0000
  1014.  
  1015.     dc.w    $0601,$fffe
  1016.     DC.W    $00e0,$0000,$00e2,$0000
  1017.     DC.W    $00e4,$0000,$00e6,$0000
  1018.     DC.W    $00e8,$0000,$00ea,$0000
  1019. bpln5b:    DC.W    $00ec,$0000,$00ee,$0000
  1020.  
  1021.     dc.w    $0701,$fffe
  1022.     DC.W    $00e0,$0000,$00e2,$0000
  1023.     DC.W    $00e4,$0000,$00e6,$0000
  1024.     DC.W    $00e8,$0000,$00ea,$0000
  1025. bpln5c:    DC.W    $00ec,$0000,$00ee,$0000
  1026.  
  1027.     dc.w    $0801,$fffe
  1028.     DC.W    $00e0,$0000,$00e2,$0000
  1029.     DC.W    $00e4,$0000,$00e6,$0000
  1030.     DC.W    $00e8,$0000,$00ea,$0000
  1031. bpln5d:    DC.W    $00ec,$0000,$00ee,$0000
  1032.  
  1033.     dc.w    $0901,$fffe
  1034.     DC.W    $00e0,$0000,$00e2,$0000
  1035.     DC.W    $00e4,$0000,$00e6,$0000
  1036.     DC.W    $00e8,$0000,$00ea,$0000
  1037. bpln5e:    DC.W    $00ec,$0000,$00ee,$0000
  1038.  
  1039.     dc.w    $0a01,$fffe
  1040.     DC.W    $00e0,$0000,$00e2,$0000
  1041.     DC.W    $00e4,$0000,$00e6,$0000
  1042.     DC.W    $00e8,$0000,$00ea,$0000
  1043. bpln5f:    DC.W    $00ec,$0000,$00ee,$0000
  1044.  
  1045.     dc.w    $0b01,$fffe
  1046.     DC.W    $00e0,$0000,$00e2,$0000
  1047.     DC.W    $00e4,$0000,$00e6,$0000
  1048.     DC.W    $00e8,$0000,$00ea,$0000
  1049. bpln60:    DC.W    $00ec,$0000,$00ee,$0000
  1050.  
  1051.     dc.w    $0c01,$fffe
  1052.     DC.W    $00e0,$0000,$00e2,$0000
  1053.     DC.W    $00e4,$0000,$00e6,$0000
  1054.     DC.W    $00e8,$0000,$00ea,$0000
  1055. bpln61:    DC.W    $00ec,$0000,$00ee,$0000
  1056.  
  1057.     dc.w    $0d01,$fffe
  1058.     DC.W    $00e0,$0000,$00e2,$0000
  1059.     DC.W    $00e4,$0000,$00e6,$0000
  1060.     DC.W    $00e8,$0000,$00ea,$0000
  1061. bpln62:    DC.W    $00ec,$0000,$00ee,$0000
  1062.  
  1063.     dc.w    $0e01,$fffe
  1064.     DC.W    $00e0,$0000,$00e2,$0000
  1065.     DC.W    $00e4,$0000,$00e6,$0000
  1066.     DC.W    $00e8,$0000,$00ea,$0000
  1067. bpln63:    DC.W    $00ec,$0000,$00ee,$0000
  1068.  
  1069.     dc.w    $0f01,$fffe
  1070.     DC.W    $00e0,$0000,$00e2,$0000
  1071.     DC.W    $00e4,$0000,$00e6,$0000
  1072.     DC.W    $00e8,$0000,$00ea,$0000
  1073. bpln64:    DC.W    $00ec,$0000,$00ee,$0000
  1074.  
  1075.     dc.w    $1001,$fffe
  1076.     DC.W    $00e0,$0000,$00e2,$0000
  1077.     DC.W    $00e4,$0000,$00e6,$0000
  1078.     DC.W    $00e8,$0000,$00ea,$0000
  1079. bpln65:    DC.W    $00ec,$0000,$00ee,$0000
  1080.  
  1081.     dc.w    $1101,$fffe
  1082.     DC.W    $00e0,$0000,$00e2,$0000
  1083.     DC.W    $00e4,$0000,$00e6,$0000
  1084.     DC.W    $00e8,$0000,$00ea,$0000
  1085. bpln66:    DC.W    $00ec,$0000,$00ee,$0000
  1086.  
  1087.     dc.w    $1201,$fffe
  1088.     DC.W    $00e0,$0000,$00e2,$0000
  1089.     DC.W    $00e4,$0000,$00e6,$0000
  1090.     DC.W    $00e8,$0000,$00ea,$0000
  1091. bpln67:    DC.W    $00ec,$0000,$00ee,$0000
  1092.  
  1093.     dc.w    $1301,$fffe
  1094.     DC.W    $00e0,$0000,$00e2,$0000
  1095.     DC.W    $00e4,$0000,$00e6,$0000
  1096.     DC.W    $00e8,$0000,$00ea,$0000
  1097. bpln68:    DC.W    $00ec,$0000,$00ee,$0000
  1098.  
  1099.     dc.w    $1401,$fffe
  1100.     DC.W    $00e0,$0000,$00e2,$0000
  1101.     DC.W    $00e4,$0000,$00e6,$0000
  1102.     DC.W    $00e8,$0000,$00ea,$0000
  1103. bpln69:    DC.W    $00ec,$0000,$00ee,$0000
  1104.  
  1105.     dc.w    $1501,$fffe
  1106.     DC.W    $00e0,$0000,$00e2,$0000
  1107.     DC.W    $00e4,$0000,$00e6,$0000
  1108.     DC.W    $00e8,$0000,$00ea,$0000
  1109. bpln6a:    DC.W    $00ec,$0000,$00ee,$0000
  1110.  
  1111.     dc.w    $1601,$fffe
  1112.     DC.W    $00e0,$0000,$00e2,$0000
  1113.     DC.W    $00e4,$0000,$00e6,$0000
  1114.     DC.W    $00e8,$0000,$00ea,$0000
  1115. bpln6b:    DC.W    $00ec,$0000,$00ee,$0000
  1116.  
  1117.     dc.w    $1701,$fffe
  1118.     DC.W    $00e0,$0000,$00e2,$0000
  1119.     DC.W    $00e4,$0000,$00e6,$0000
  1120.     DC.W    $00e8,$0000,$00ea,$0000
  1121. bpln6c:    DC.W    $00ec,$0000,$00ee,$0000
  1122.  
  1123.     dc.w    $1801,$fffe
  1124.     DC.W    $00e0,$0000,$00e2,$0000
  1125.     DC.W    $00e4,$0000,$00e6,$0000
  1126.     DC.W    $00e8,$0000,$00ea,$0000
  1127. bpln6d:    DC.W    $00ec,$0000,$00ee,$0000
  1128.  
  1129.     dc.w    $1901,$fffe
  1130.     DC.W    $00e0,$0000,$00e2,$0000
  1131.     DC.W    $00e4,$0000,$00e6,$0000
  1132.     DC.W    $00e8,$0000,$00ea,$0000
  1133. bpln6e:    DC.W    $00ec,$0000,$00ee,$0000
  1134.  
  1135.     dc.w    $1a01,$fffe
  1136.     DC.W    $00e0,$0000,$00e2,$0000
  1137.     DC.W    $00e4,$0000,$00e6,$0000
  1138.     DC.W    $00e8,$0000,$00ea,$0000
  1139. bpln6f:    DC.W    $00ec,$0000,$00ee,$0000
  1140.  
  1141.     dc.w    $1b01,$fffe
  1142.     DC.W    $00e0,$0000,$00e2,$0000
  1143.     DC.W    $00e4,$0000,$00e6,$0000
  1144.     DC.W    $00e8,$0000,$00ea,$0000
  1145. bpln70:    DC.W    $00ec,$0000,$00ee,$0000
  1146.  
  1147.     dc.w    $1c01,$fffe
  1148.     DC.W    $00e0,$0000,$00e2,$0000
  1149.     DC.W    $00e4,$0000,$00e6,$0000
  1150.     DC.W    $00e8,$0000,$00ea,$0000
  1151. bpln71:    DC.W    $00ec,$0000,$00ee,$0000
  1152.  
  1153.     dc.w    $1d01,$fffe
  1154.     DC.W    $00e0,$0000,$00e2,$0000
  1155.     DC.W    $00e4,$0000,$00e6,$0000
  1156.     DC.W    $00e8,$0000,$00ea,$0000
  1157. bpln72:    DC.W    $00ec,$0000,$00ee,$0000
  1158.  
  1159.     dc.w    $1e01,$fffe
  1160.     DC.W    $00e0,$0000,$00e2,$0000
  1161.     DC.W    $00e4,$0000,$00e6,$0000
  1162.     DC.W    $00e8,$0000,$00ea,$0000
  1163. bpln73:    DC.W    $00ec,$0000,$00ee,$0000
  1164.  
  1165.     dc.w    $1f01,$fffe
  1166.     DC.W    $00e0,$0000,$00e2,$0000
  1167.     DC.W    $00e4,$0000,$00e6,$0000
  1168.     DC.W    $00e8,$0000,$00ea,$0000
  1169. bpln74:    DC.W    $00ec,$0000,$00ee,$0000
  1170.  
  1171.     dc.w    $2001,$fffe
  1172.     DC.W    $00e0,$0000,$00e2,$0000
  1173.     DC.W    $00e4,$0000,$00e6,$0000
  1174.     DC.W    $00e8,$0000,$00ea,$0000
  1175. bpln75:    DC.W    $00ec,$0000,$00ee,$0000
  1176.  
  1177.     dc.w    $2101,$fffe
  1178.     DC.W    $00e0,$0000,$00e2,$0000
  1179.     DC.W    $00e4,$0000,$00e6,$0000
  1180.     DC.W    $00e8,$0000,$00ea,$0000
  1181. bpln76:    DC.W    $00ec,$0000,$00ee,$0000
  1182.  
  1183.     dc.w    $2201,$fffe
  1184.     DC.W    $00e0,$0000,$00e2,$0000
  1185.     DC.W    $00e4,$0000,$00e6,$0000
  1186.     DC.W    $00e8,$0000,$00ea,$0000
  1187. bpln77:    DC.W    $00ec,$0000,$00ee,$0000
  1188.  
  1189.     dc.w    $2301,$fffe
  1190.     DC.W    $00e0,$0000,$00e2,$0000
  1191.     DC.W    $00e4,$0000,$00e6,$0000
  1192.     DC.W    $00e8,$0000,$00ea,$0000
  1193. bpln78:    DC.W    $00ec,$0000,$00ee,$0000
  1194.  
  1195.     dc.w    $2401,$fffe
  1196.     DC.W    $00e0,$0000,$00e2,$0000
  1197.     DC.W    $00e4,$0000,$00e6,$0000
  1198.     DC.W    $00e8,$0000,$00ea,$0000
  1199. bpln79:    DC.W    $00ec,$0000,$00ee,$0000
  1200.  
  1201.     dc.w    $2501,$fffe
  1202.     DC.W    $00e0,$0000,$00e2,$0000
  1203.     DC.W    $00e4,$0000,$00e6,$0000
  1204.     DC.W    $00e8,$0000,$00ea,$0000
  1205. bpln7a:    DC.W    $00ec,$0000,$00ee,$0000
  1206.  
  1207.     dc.w    $2601,$fffe
  1208.     DC.W    $00e0,$0000,$00e2,$0000
  1209.     DC.W    $00e4,$0000,$00e6,$0000
  1210.     DC.W    $00e8,$0000,$00ea,$0000
  1211. bpln7b:    DC.W    $00ec,$0000,$00ee,$0000
  1212.  
  1213.     dc.w    $2701,$fffe
  1214.     DC.W    $00e0,$0000,$00e2,$0000
  1215.     DC.W    $00e4,$0000,$00e6,$0000
  1216.     DC.W    $00e8,$0000,$00ea,$0000
  1217. bpln7c:    DC.W    $00ec,$0000,$00ee,$0000
  1218.  
  1219.     dc.w    $2801,$fffe
  1220.     DC.W    $00e0,$0000,$00e2,$0000
  1221.     DC.W    $00e4,$0000,$00e6,$0000
  1222.     DC.W    $00e8,$0000,$00ea,$0000
  1223. bpln7d:    DC.W    $00ec,$0000,$00ee,$0000
  1224.  
  1225.     dc.w    $2901,$fffe
  1226.     DC.W    $00e0,$0000,$00e2,$0000
  1227.     DC.W    $00e4,$0000,$00e6,$0000
  1228.     DC.W    $00e8,$0000,$00ea,$0000
  1229. bpln7e:    DC.W    $00ec,$0000,$00ee,$0000
  1230.  
  1231.     dc.w    $2a01,$fffe
  1232.     DC.W    $00e0,$0000,$00e2,$0000
  1233.     DC.W    $00e4,$0000,$00e6,$0000
  1234.     DC.W    $00e8,$0000,$00ea,$0000
  1235. bpln7f:    DC.W    $00ec,$0000,$00ee,$0000
  1236.  
  1237.     dc.w    $2b01,$fffe
  1238.     DC.W    $00e0,$0000,$00e2,$0000
  1239.     DC.W    $00e4,$0000,$00e6,$0000
  1240.     DC.W    $00e8,$0000,$00ea,$0000
  1241. bpln80:    DC.W    $00ec,$0000,$00ee,$0000
  1242.  
  1243.     dc.w    $2c01,$fffe
  1244.     DC.W    $00e0,$0000,$00e2,$0000
  1245.     DC.W    $00e4,$0000,$00e6,$0000
  1246.     DC.W    $00e8,$0000,$00ea,$0000
  1247. bpln81:    DC.W    $00ec,$0000,$00ee,$0000
  1248.  
  1249.     dc.w    $2d01,$fffe
  1250.     DC.W    $00e0,$0000,$00e2,$0000
  1251.     DC.W    $00e4,$0000,$00e6,$0000
  1252.     DC.W    $00e8,$0000,$00ea,$0000
  1253. bpln82:    DC.W    $00ec,$0000,$00ee,$0000
  1254.  
  1255.     dc.w    $ffff,$fffe
  1256.     
  1257.  
  1258. gfxname:
  1259.     DC.B    'graphics.library',0
  1260.     EVEN
  1261. gfxbase:
  1262.     DC.L    0
  1263.  
  1264. stor:    dc.l    0
  1265. pln1:    dc.l    0
  1266. pln2:    dc.l    0
  1267. pln3:    dc.l    0
  1268. pln4:    dc.l    0
  1269. pln5:    dc.l    0
  1270. pln6:    dc.l    0
  1271. sysint:    dc.w    0
  1272. int3save:
  1273.     dc.l    0
  1274. plnbase:dc.l    0
  1275. scrlbase:
  1276.     dc.l    0
  1277.  
  1278. isr:    movem.l    d0/d7-a0/a6,-(sp)
  1279.     move.w    #$0020,$dff09c
  1280.     movem.l    (sp)+,d0/d7-a0/a6
  1281.     rte
  1282.  
  1283. task:    move.w    $dff006,d0
  1284.     and.w    #$ff00,d0
  1285.     cmp.w    #$d500,d0
  1286.     bne    task
  1287.     ;move.w    #$00f0,$dff180
  1288.     jsr    updtspec
  1289.     jsr    blitmnt1
  1290.     jsr    blitmnt2
  1291.     jsr    make_scape
  1292.     jsr    getcirc
  1293.     jsr    replay
  1294.     jsr    scrl
  1295.     ;move.w    #$0000,$dff180
  1296.     rts
  1297.  
  1298.  
  1299.     ************************
  1300.     *Update frame according to frame
  1301.     *Obvious or what?
  1302.     ************************
  1303.  
  1304. Make_scape:
  1305. .lp5:    move.l    xvec,d0
  1306.     add.l    d0,frame
  1307.     move.l    frame,frame2
  1308.     and.l    #15,frame
  1309.     tst.l    xvec
  1310.     beq    .lp4
  1311.     
  1312.     bpl    .lp7
  1313.     tst.l    frame2
  1314.     bpl    .lp4
  1315.     bra    .lp6
  1316.  
  1317. .lp7:    tst.l    frame
  1318.     beq    .lp6
  1319. .lp8:    move.l    frame2,d1
  1320.     cmp.l    #15,d1
  1321.     ble    .lp4
  1322.  
  1323. .lp6:    move.l    startoff,d0
  1324.     move.l    startoff+4,startoff
  1325.     move.l    d0,startoff+4
  1326.  
  1327. .lp4:    lea    squdata,a2
  1328.     lea    squpos,a3
  1329.     move.l    #0,d6
  1330.     move.l    startoff,d4
  1331.     move.l    startoff+4,d5
  1332.     move.l    frame,d2
  1333.     mulu    #5120,d2
  1334.     move.l    #0,d0
  1335.     lea    plnaddr,a0
  1336.     move.w    (a3)+,d6
  1337.     move.w    (a2,d6),d6
  1338.     
  1339. .lp1:    move.l    d2,d3
  1340.     add.l    d4,d3
  1341.     move.l    (a0)+,a1
  1342.     move.w    d3,6(a1)
  1343.     swap    d3
  1344.     move.w    d3,2(a1)
  1345.  
  1346.     add.l    #40,d2
  1347.     add.l    #1,d0
  1348.     cmp.l    #128,d0
  1349.     beq    .lp2
  1350. .lp9:    dbra    d6,.lp1
  1351.     move.l    #0,d6
  1352.     exg    d4,d5
  1353.     move.w    (a3)+,d6
  1354.     move.w    (a2,d6),d6
  1355.     bra    .lp1
  1356. .lp2:
  1357.     move.l    yvec,d0
  1358.     asl.l    #1,d0
  1359.     add.w    d0,squpos
  1360.     add.w    d0,squpos+2
  1361.     add.w    d0,squpos+4
  1362.     add.w    d0,squpos+6
  1363.     add.w    d0,squpos+8
  1364.     add.w    d0,squpos+10
  1365.     add.w    d0,squpos+12
  1366.     add.w    d0,squpos+14
  1367.     add.w    d0,squpos+16
  1368.     add.w    d0,squpos+18
  1369.     tst.w    squpos
  1370.     bpl    .lpa
  1371.  
  1372.     add.w    #20,squpos
  1373.     add.w    #20,squpos+2
  1374.     add.w    #20,squpos+4
  1375.     add.w    #20,squpos+6
  1376.     add.w    #20,squpos+8
  1377.     add.w    #20,squpos+10
  1378.     add.w    #20,squpos+12
  1379.     add.w    #20,squpos+14
  1380.     add.w    #20,squpos+16
  1381.     add.w    #20,squpos+18
  1382.  
  1383.     move.l    startoff,d0
  1384.     move.l    startoff+4,startoff
  1385.     move.l    d0,startoff+4
  1386.     rts
  1387.     
  1388. .lpa:    cmp.w    #20,squpos
  1389.     bge    .lp3
  1390.     rts
  1391. .lp3:    
  1392.     sub.w    #20,squpos
  1393.     sub.w    #20,squpos+2
  1394.     sub.w    #20,squpos+4
  1395.     sub.w    #20,squpos+6
  1396.     sub.w    #20,squpos+8
  1397.     sub.w    #20,squpos+10
  1398.     sub.w    #20,squpos+12
  1399.     sub.w    #20,squpos+14
  1400.     sub.w    #20,squpos+16
  1401.     sub.w    #20,squpos+18
  1402.  
  1403.     move.l    startoff,d0
  1404.     move.l    startoff+4,startoff
  1405.     move.l    d0,startoff+4
  1406.     rts
  1407. frame:    dc.l    0    
  1408. frame2:    dc.l    0    
  1409. count:    dc.l    0
  1410. xvec:    dc.l    0
  1411. yvec:    dc.l    1
  1412. mxpos:    dc.l    0
  1413. mxpos2:    dc.l    0
  1414. vec1:    dc.l    0
  1415. vec2:    dc.l    0
  1416. deg1:    dc.l    0
  1417. deg2:    dc.l    76
  1418. flag:    dc.l    0
  1419.     even
  1420.  
  1421.  
  1422. Blitmnt1:
  1423.     move.l    xvec,d0        ;update xcoords
  1424.     add.l    d0,mxpos
  1425.     add.l    d0,mxpos2
  1426.     cmp.l    #320,mxpos
  1427.     bge    .lp4
  1428.     tst.l    mxpos
  1429.     bmi    .lp5
  1430.     bra    .lp6
  1431. .lp4:    tst.l    mxpos
  1432.     bmi    .lp5
  1433.     sub.l    #320,mxpos
  1434.     bra    .lp6
  1435. .lp5:    add.l    #320,mxpos
  1436.  
  1437. .lp6:    cmp.l    #640,mxpos2    ;update sec xcoord
  1438.     bge    .lp7
  1439.     tst.l    mxpos2
  1440.     bmi    .lp8
  1441.     bra    .lp9
  1442. .lp7:    tst.l    mxpos2
  1443.     bmi    .lp8
  1444.     sub.l    #640,mxpos2
  1445.     bra    .lp9
  1446. .lp8:    add.l    #640,mxpos2
  1447.  
  1448.  
  1449. .lp9:    ;move.w    #$0fff,$dff180
  1450.     move.l    mxpos2,d5
  1451.     lsr.l    #4,d5
  1452.     bclr    #0,d5
  1453.     sub.l    #40,d5
  1454.     move.l    mxpos2,d3
  1455.     lsr.l    #1,d3
  1456.     and.l    #$0f,d3
  1457.     asl.l    #8,d3
  1458.     asl.l    #4,d3
  1459.     and.w    #$f000,d3
  1460.     move.w    d3,d4
  1461.     or.w    #%0000100111110000,d3    
  1462.  
  1463.     move.l    #mount1-2,d0
  1464.     move.l    pln1,d1
  1465.     sub.l    d5,d0
  1466.     ;add.l    #50*40,d1
  1467.     move.l    d0,$dff050    ;a source IM
  1468.     move.l    d1,$dff054    ;d source
  1469.     move.w    #$0026,$dff064    ;a mod
  1470.     move.w    #$0000,$dff066    ;d mod
  1471.     move.w    #$ffff,$dff044    ;fw mask
  1472.     move.w    #$ffff,$dff046    ;lw mask
  1473.     move.w    d3,$dff040    ;con0
  1474.     move.w    d4,$dff042    ;con1
  1475.     move.w    #%0001001110010101,$dff058    ;size        
  1476.     ;move.w    #$0000,$dff180
  1477.  
  1478.     add.l    #plnsize,d1
  1479.     add.l    #$1860,d0
  1480.     move.l    d0,$dff050    ;a source IM
  1481.     move.l    d1,$dff054    ;d source    
  1482.     move.w    #%0001001110010101,$dff058    ;size        
  1483.     ;move.w    #$0000,$dff180
  1484.  
  1485.     add.l    #plnsize,d1
  1486.     add.l    #$1860,d0
  1487.  
  1488.     move.l    d0,$dff050    ;a source IM
  1489.     move.l    d1,$dff054    ;d source
  1490.     move.w    #%0001001110010101,$dff058    ;size        
  1491.     ;move.w    #$0000,$dff180
  1492.     rts
  1493.     even
  1494.  
  1495. Blitmnt2:
  1496.     ;move.w    #$0fff,$dff180
  1497.  
  1498.     move.l    mxpos,d5
  1499.     lsr.l    #3,d5
  1500.     bclr    #0,d5
  1501.     sub.l    #40,d5
  1502.     move.l    mxpos,d3
  1503.     and.l    #$0f,d3
  1504.     asl.l    #8,d3
  1505.     asl.l    #4,d3
  1506.     and.w    #$f000,d3
  1507.     move.w    d3,d4
  1508.     or.w    #%0000111110111000,d3    
  1509.     
  1510.     move.l    #mount2-2,d0
  1511.     sub.l    d5,d0
  1512.     move.l    #mask-2,d2
  1513.     sub.l    d5,d2
  1514.     move.l    pln1,d1
  1515.     add.l    #46*42,d1
  1516.     move.l    d0,$dff050    ;a source IM
  1517.     move.l    d2,$dff04c    ;b mask IM
  1518.     move.l    d1,$dff048    ;c source
  1519.     move.l    d1,$dff054    ;d source
  1520.     move.w    #$0026,$dff064    ;a mod
  1521.     move.w    #$0026,$dff062    ;b mod
  1522.     move.w    #$0000,$dff060    ;c mod
  1523.     move.w    #$0000,$dff066    ;d mod
  1524.     move.w    #$ffff,$dff044    ;fw mask
  1525.     move.w    #$ffff,$dff046    ;lw mask
  1526.     move.w    d3,$dff040    ;con0
  1527.     move.w    d4,$dff042    ;con1
  1528.     move.w    #%0000100000010101,$dff058    ;size        
  1529.     ;move.w    #$0000,$dff180
  1530.  
  1531.     * M-00001111 10111000       *
  1532.  
  1533.     add.l    #plnsize,d1
  1534.     add.l    #$a00,d0
  1535.  
  1536.     move.l    d0,$dff050    ;a source IM
  1537.     move.l    d2,$dff04c    ;b mask IM
  1538.     move.l    d1,$dff048    ;c source
  1539.     move.l    d1,$dff054    ;d source    
  1540.     move.w    #%0000100000010101,$dff058    ;size        
  1541.     ;move.w    #$0000,$dff180
  1542.  
  1543.     add.l    #plnsize,d1
  1544.     add.l    #$a00,d0
  1545.  
  1546.     move.l    d0,$dff050    ;a source IM
  1547.     move.l    d2,$dff04c    ;b mask IM
  1548.     move.l    d1,$dff048    ;c source
  1549.     move.l    d1,$dff054    ;d source
  1550.     move.w    #%0000100000010101,$dff058    ;size        
  1551.     ;move.w    #$0000,$dff180
  1552.  
  1553.     rts
  1554.  
  1555.  
  1556. Getcirc:
  1557.     move.l    deg1,d0
  1558.     lea    lrgcircle,a0
  1559.     move.l    (a0,d0),d0
  1560.     move.l    d0,xvec
  1561.  
  1562.     add.l    #4,deg1
  1563.     add.l    deg1,a0
  1564.     cmp.l    #vec,a0
  1565.     bne    .lp
  1566.     move.l    #0,deg1
  1567. .lp:    add.l    #1,deg2
  1568.     cmp.l    #1000,deg2
  1569.     bne    .lp2
  1570.     move.l    #0,deg2
  1571.     eor.l    #-1,yvec
  1572. .lp2:    rts
  1573.  
  1574. updtspec:
  1575.     tst.l    spcl0
  1576.     beq    nospec0
  1577.     move.l    #spec0,a0
  1578.     move.l    spcl0,d0
  1579.     asl.l    #2,d0
  1580.     move.w    #$00ff,4(a0)
  1581.     sub.l    #1,spcl0
  1582.     move.l    #$51,d0        ;80
  1583.     lea    spectab,a1
  1584.     move.l    spcl0,d1
  1585.     asl.l    #1,d1
  1586.     add.w    (a1,d1),d0
  1587.     move.b    d0,(a0)
  1588.     add.l    spcl0,d0
  1589.     move.b    d0,2(a0)
  1590.     move.l    spcl0,d0
  1591.     asl.l    #2,d0
  1592.     move.w    #0,4(a0)    
  1593.     lsr.l    #1,d0
  1594. nospec0:
  1595.     tst.w    mt_aud1temp
  1596.     beq    nov0
  1597.     move.l    #32,spcl0
  1598.     move.w    #0,mt_aud1temp
  1599. nov0:    
  1600.     tst.l    spcl1
  1601.     beq    nospec1
  1602.     move.l    #spec1,a0
  1603.     move.l    spcl1,d0
  1604.     asl.l    #2,d0
  1605.     move.w    #$00ff,4(a0)
  1606.     sub.l    #1,spcl1
  1607.     move.l    #$51,d0
  1608.     lea    spectab,a1
  1609.     move.l    spcl1,d1
  1610.     asl.l    #1,d1
  1611.     add.w    (a1,d1),d0
  1612.     move.b    d0,(a0)
  1613.     add.l    spcl1,d0
  1614.     move.b    d0,2(a0)
  1615.     move.l    spcl1,d0
  1616.     asl.l    #2,d0
  1617.     move.w    #0,4(a0)    
  1618.     lsr.l    #1,d0
  1619. nospec1:tst.w    mt_aud2temp
  1620.     beq    nov1
  1621.     move.l    #32,spcl1
  1622.     move.w    #0,mt_aud2temp
  1623. nov1:    
  1624.     tst.l    spcl2
  1625.     beq    nospec2
  1626.     move.l    #spec2,a0
  1627.     move.l    spcl2,d0
  1628.     asl.l    #2,d0
  1629.     move.w    #$00ff,4(a0)
  1630.     sub.l    #1,spcl2
  1631.     move.l    #$51,d0
  1632.     lea    spectab,a1
  1633.     move.l    spcl2,d1
  1634.     asl.l    #1,d1
  1635.     add.w    (a1,d1),d0
  1636.     move.b    d0,(a0)
  1637.     add.l    spcl2,d0
  1638.     move.b    d0,2(a0)
  1639.     move.l    spcl2,d0
  1640.     asl.l    #2,d0
  1641.     move.w    #0,4(a0)    
  1642.     lsr.l    #1,d0
  1643. nospec2:tst.w    mt_aud3temp
  1644.     beq    nov2
  1645.     move.l    #32,spcl2
  1646.     move.w    #0,mt_aud3temp
  1647. nov2:    
  1648.     tst.l    spcl3
  1649.     beq    nospec3
  1650.     move.l    #spec3,a0
  1651.     move.l    spcl3,d0
  1652.     asl.l    #2,d0
  1653.     move.l    #$00ff00ff,4(a0)
  1654.     sub.l    #1,spcl3
  1655.     move.l    #$51,d0
  1656.     lea    spectab,a1
  1657.     move.l    spcl3,d1
  1658.     asl.l    #1,d1
  1659.     add.w    (a1,d1),d0
  1660.     move.b    d0,(a0)
  1661.     add.l    spcl3,d0
  1662.     move.b    d0,2(a0)
  1663.     move.l    spcl3,d0
  1664.     asl.l    #2,d0
  1665.     move.l    #0,4(a0)    
  1666.     lsr.l    #1,d0
  1667. nospec3:tst.w    mt_aud4temp
  1668.     beq    nov3
  1669.     move.l    #32,spcl3
  1670.     move.w    #0,mt_aud4temp
  1671. nov3:    rts
  1672.  
  1673.  
  1674. ; -----------------------------------------------
  1675. ; ------- Soundtracker V2.4 - playroutine -------
  1676. ; -----------------------------------------------
  1677.  
  1678. ; call 'mt_init' to initialize the playroutine
  1679.  
  1680. start:    lea    mt_data,a0
  1681.     add.l    #$03b8,a0
  1682.     moveq    #$7f,d0
  1683.     moveq    #0,d1
  1684. mt_init1:
  1685.     move.l    d1,d2
  1686.     subq.w    #1,d0
  1687. mt_init2:
  1688.     move.b    (a0)+,d1
  1689.     cmp.b    d2,d1
  1690.     bgt.s    mt_init1
  1691.     dbf    d0,mt_init2
  1692.     addq.b    #1,d2
  1693.  
  1694. mt_init3:
  1695.     lea    mt_data,a0
  1696.     lea    mt_sample1(pc),a1
  1697.     asl.l    #8,d2
  1698.     asl.l    #2,d2
  1699.     add.l    #$438,d2
  1700.     add.l    a0,d2
  1701.     moveq    #$1e,d0
  1702. mt_init4:
  1703.     move.l    d2,(a1)+
  1704.     moveq    #0,d1
  1705.     move.w    42(a0),d1
  1706.     asl.l    #1,d1
  1707.     add.l    d1,d2
  1708.     add.l    #$1e,a0
  1709.     dbf    d0,mt_init4
  1710.  
  1711.     lea    mt_sample1(PC),a0
  1712.     moveq    #0,d0
  1713. mt_clear:
  1714.     move.l    (a0,d0.w),a1
  1715.     clr.l    (a1)
  1716.     addq.w    #4,d0
  1717.     cmp.w    #$7c,d0
  1718.     bne.s    mt_clear
  1719.  
  1720.     clr.w    $dff0a8
  1721.     clr.w    $dff0b8
  1722.     clr.w    $dff0c8
  1723.     clr.w    $dff0d8
  1724.     clr.l    mt_partnrplay
  1725.     clr.l    mt_partnote
  1726.     clr.l    mt_partpoint
  1727.  
  1728.     move.b    mt_data+$3b6,mt_maxpart+1
  1729.     rts
  1730.  
  1731. ; call 'mt_end' to switch the sound off
  1732.  
  1733. stop:    clr.w    $dff0a8
  1734.     clr.w    $dff0b8
  1735.     clr.w    $dff0c8
  1736.     clr.w    $dff0d8
  1737.     move.w    #$f,$dff096
  1738.     rts
  1739.  
  1740. ; the playroutine - call this every frame
  1741.  
  1742. replay:
  1743.     addq.w    #1,mt_counter
  1744. mt_cool:cmp.w    #6,mt_counter
  1745.     bne.s    mt_notsix
  1746.     clr.w    mt_counter
  1747.     bra    mt_rout2
  1748.  
  1749. mt_notsix:
  1750.     lea    mt_aud1temp(PC),a6
  1751.     tst.b    3(a6)
  1752.     beq.s    mt_arp1
  1753.     lea    $dff0a0,a5        
  1754.     bsr.s    mt_arprout
  1755. mt_arp1:lea    mt_aud2temp(PC),a6
  1756.     tst.b    3(a6)
  1757.     beq.s    mt_arp2
  1758.     lea    $dff0b0,a5
  1759.     bsr.s    mt_arprout
  1760. mt_arp2:lea    mt_aud3temp(PC),a6
  1761.     tst.b    3(a6)
  1762.     beq.s    mt_arp3
  1763.     lea    $dff0c0,a5
  1764.     bsr.s    mt_arprout
  1765. mt_arp3:lea    mt_aud4temp(PC),a6
  1766.     tst.b    3(a6)
  1767.     beq.s    mt_arp4
  1768.     lea    $dff0d0,a5
  1769.     bra.s    mt_arprout
  1770. mt_arp4:rts
  1771.  
  1772. mt_arprout:
  1773.     move.b    2(a6),d0
  1774.     and.b    #$0f,d0
  1775.     tst.b    d0
  1776.     beq    mt_arpegrt
  1777.     cmp.b    #$01,d0
  1778.     beq.s    mt_portup
  1779.     cmp.b    #$02,d0
  1780.     beq.s    mt_portdwn
  1781.     cmp.b    #$0a,d0
  1782.     beq.s    mt_volslide
  1783.     rts
  1784.  
  1785. mt_portup:
  1786.     moveq    #0,d0
  1787.     move.b    3(a6),d0
  1788.     sub.w    d0,22(a6)
  1789.     cmp.w    #$71,22(a6)
  1790.     bpl.s    mt_ok1
  1791.     move.w    #$71,22(a6)
  1792. mt_ok1:    move.w    22(a6),6(a5)
  1793.     rts
  1794.  
  1795. mt_portdwn:
  1796.     moveq    #0,d0
  1797.     move.b    3(a6),d0
  1798.     add.w    d0,22(a6)
  1799.     cmp.w    #$538,22(a6)
  1800.     bmi.s    mt_ok2
  1801.     move.w    #$538,22(a6)
  1802. mt_ok2:    move.w    22(a6),6(a5)
  1803.     rts
  1804.  
  1805. mt_volslide:
  1806.     moveq    #0,d0
  1807.     move.b    3(a6),d0
  1808.     lsr.b    #4,d0
  1809.     tst.b    d0
  1810.     beq.s    mt_voldwn
  1811.     add.w    d0,18(a6)
  1812.     cmp.w    #64,18(a6)
  1813.     bmi.s    mt_ok3
  1814.     move.w    #64,18(a6)
  1815. mt_ok3:    move.w    18(a6),8(a5)
  1816.     rts
  1817. mt_voldwn:
  1818.     moveq    #0,d0
  1819.     move.b    3(a6),d0
  1820.     and.b    #$0f,d0
  1821.     sub.w    d0,18(a6)
  1822.     bpl.s    mt_ok4
  1823.     clr.w    18(a6)
  1824. mt_ok4:    move.w    18(a6),8(a5)
  1825.     rts
  1826.  
  1827. mt_arpegrt:
  1828.     move.w    mt_counter(PC),d0
  1829.     cmp.w    #1,d0
  1830.     beq.s    mt_loop2
  1831.     cmp.w    #2,d0
  1832.     beq.s    mt_loop3
  1833.     cmp.w    #3,d0
  1834.     beq.s    mt_loop4
  1835.     cmp.w    #4,d0
  1836.     beq.s    mt_loop2
  1837.     cmp.w    #5,d0
  1838.     beq.s    mt_loop3
  1839.     rts
  1840.  
  1841. mt_loop2:
  1842.     moveq    #0,d0
  1843.     move.b    3(a6),d0
  1844.     lsr.b    #4,d0
  1845.     bra.s    mt_cont
  1846. mt_loop3:
  1847.     moveq    #$00,d0
  1848.     move.b    3(a6),d0
  1849.     and.b    #$0f,d0
  1850.     bra.s    mt_cont
  1851. mt_loop4:
  1852.     move.w    16(a6),d2
  1853.     bra.s    mt_endpart
  1854. mt_cont:
  1855.     add.w    d0,d0
  1856.     moveq    #0,d1
  1857.     move.w    16(a6),d1
  1858.     and.w    #$fff,d1
  1859.     lea    mt_arpeggio(PC),a0
  1860. mt_loop5:
  1861.     move.w    (a0,d0),d2
  1862.     cmp.w    (a0),d1
  1863.     beq.s    mt_endpart
  1864.     addq.l    #2,a0
  1865.     bra.s    mt_loop5
  1866. mt_endpart:
  1867.     move.w    d2,6(a5)
  1868.     rts
  1869.  
  1870. mt_rout2:
  1871.     lea    mt_data,a0
  1872.     move.l    a0,a3
  1873.     add.l    #$0c,a3
  1874.     move.l    a0,a2
  1875.     add.l    #$3b8,a2
  1876.     add.l    #$43c,a0
  1877.     move.l    mt_partnrplay(PC),d0
  1878.     moveq    #0,d1
  1879.     move.b    (a2,d0),d1
  1880.     asl.l    #8,d1
  1881.     asl.l    #2,d1
  1882.     add.l    mt_partnote(PC),d1
  1883.     move.l    d1,mt_partpoint
  1884.     clr.w    mt_dmacon
  1885.  
  1886.     lea    $dff0a0,a5
  1887.     lea    mt_aud1temp(PC),a6
  1888.     bsr    mt_playit
  1889.     lea    $dff0b0,a5
  1890.     lea    mt_aud2temp(PC),a6
  1891.     bsr    mt_playit
  1892.     lea    $dff0c0,a5
  1893.     lea    mt_aud3temp(PC),a6
  1894.     bsr    mt_playit
  1895.     lea    $dff0d0,a5
  1896.     lea    mt_aud4temp(PC),a6
  1897.     bsr    mt_playit
  1898.     move.w    #$01f4,d0
  1899. mt_rls:    dbf    d0,mt_rls
  1900.  
  1901.     move.w    #$8000,d0
  1902.     or.w    mt_dmacon,d0
  1903.     move.w    d0,$dff096
  1904.  
  1905.     lea    mt_aud4temp(PC),a6
  1906.     cmp.w    #1,14(a6)
  1907.     bne.s    mt_voice3
  1908.     move.l    10(a6),$dff0d0
  1909.     move.w    #1,$dff0d4
  1910. mt_voice3:
  1911.     lea    mt_aud3temp(PC),a6
  1912.     cmp.w    #1,14(a6)
  1913.     bne.s    mt_voice2
  1914.     move.l    10(a6),$dff0c0
  1915.     move.w    #1,$dff0c4
  1916. mt_voice2:
  1917.     lea    mt_aud2temp(PC),a6
  1918.     cmp.w    #1,14(a6)
  1919.     bne.s    mt_voice1
  1920.     move.l    10(a6),$dff0b0
  1921.     move.w    #1,$dff0b4
  1922. mt_voice1:
  1923.     lea    mt_aud1temp(PC),a6
  1924.     cmp.w    #1,14(a6)
  1925.     bne.s    mt_voice0
  1926.     move.l    10(a6),$dff0a0
  1927.     move.w    #1,$dff0a4
  1928. mt_voice0:
  1929.     move.l    mt_partnote(PC),d0
  1930.     add.l    #$10,d0
  1931.     move.l    d0,mt_partnote
  1932.     cmp.l    #$400,d0
  1933.     bne.s    mt_stop
  1934. mt_higher:
  1935.     clr.l    mt_partnote
  1936.     addq.l    #1,mt_partnrplay
  1937.     moveq    #0,d0
  1938.     move.w    mt_maxpart(PC),d0
  1939.     move.l    mt_partnrplay(PC),d1
  1940.     cmp.l    d0,d1
  1941.     bne.s    mt_stop
  1942.     clr.l    mt_partnrplay
  1943. mt_stop:tst.w    mt_status
  1944.     beq.s    mt_stop2
  1945.     clr.w    mt_status
  1946.     bra.s    mt_higher
  1947. mt_stop2:
  1948.     rts
  1949.  
  1950. mt_playit:
  1951.     move.l    (a0,d1.l),(a6)
  1952.     addq.l    #4,d1
  1953.     moveq    #0,d2
  1954.     move.b    2(a6),d2
  1955.     and.b    #$f0,d2
  1956.     lsr.b    #4,d2
  1957.  
  1958.     move.b    (a6),d0
  1959.     and.b    #$f0,d0
  1960.     or.b    d0,d2
  1961.     tst.b    d2
  1962.     beq.s    mt_nosamplechange
  1963.  
  1964.     moveq    #0,d3
  1965.     lea    mt_samples(PC),a1
  1966.     move.l    d2,d4
  1967.     asl.l    #2,d2
  1968.     mulu    #$1e,d4
  1969.     move.l    (a1,d2),4(a6)
  1970.     move.w    (a3,d4.l),8(a6)
  1971.     move.w    2(a3,d4.l),18(a6)
  1972.     move.w    4(a3,d4.l),d3
  1973.     tst.w    d3
  1974.     beq.s    mt_displace
  1975.     move.l    4(a6),d2
  1976.     add.l    d3,d2
  1977.     move.l    d2,4(a6)
  1978.     move.l    d2,10(a6)
  1979.     move.w    6(a3,d4.l),8(a6)
  1980.     move.w    6(a3,d4.l),14(a6)
  1981.     move.w    18(a6),8(a5)
  1982.     bra.s    mt_nosamplechange
  1983.  
  1984. mt_displace:
  1985.     move.l    4(a6),d2
  1986.     add.l    d3,d2
  1987.     move.l    d2,10(a6)
  1988.     move.w    6(a3,d4.l),14(a6)
  1989.     move.w    18(a6),8(a5)
  1990. mt_nosamplechange:
  1991.     move.w    (a6),d0
  1992.     and.w    #$fff,d0
  1993.     tst.w    d0
  1994.     beq.s    mt_retrout
  1995.     move.w    (a6),16(a6)
  1996.     move.w    20(a6),$dff096
  1997.     move.l    4(a6),(a5)
  1998.     move.w    8(a6),4(a5)
  1999.     move.w    (a6),d0
  2000.     and.w    #$fff,d0
  2001.     move.w    d0,6(a5)
  2002.     move.w    20(a6),d0
  2003.     or.w    d0,mt_dmacon
  2004.  
  2005. mt_retrout:
  2006.     tst.w    (a6)
  2007.     beq.s    mt_nonewper
  2008.     move.w    (a6),22(a6)
  2009.  
  2010. mt_nonewper:
  2011.     move.b    2(a6),d0
  2012.     and.b    #$0f,d0
  2013.     cmp.b    #$0b,d0
  2014.     beq.s    mt_posjmp
  2015.     cmp.b    #$0c,d0
  2016.     beq.s    mt_setvol
  2017.     cmp.b    #$0d,d0
  2018.     beq.s    mt_break
  2019.     cmp.b    #$0e,d0
  2020.     beq.s    mt_setfil
  2021.     cmp.b    #$0f,d0
  2022.     beq.s    mt_setspeed
  2023.     rts
  2024.  
  2025. mt_posjmp:
  2026.     not.w    mt_status
  2027.     moveq    #0,d0
  2028.     move.b    3(a6),d0
  2029.     subq.b    #1,d0
  2030.     move.l    d0,mt_partnrplay
  2031.     rts
  2032.  
  2033. mt_setvol:
  2034.     move.b    3(a6),8(a5)
  2035.     rts
  2036.  
  2037. mt_break:
  2038.     not.w    mt_status
  2039.     rts
  2040.  
  2041. mt_setfil:
  2042.     moveq    #0,d0
  2043.     move.b    3(a6),d0
  2044.     and.b    #1,d0
  2045.     rol.b    #1,d0
  2046.     and.b    #$fd,$bfe001
  2047.     or.b    d0,$bfe001
  2048.     rts
  2049.  
  2050. mt_setspeed:
  2051.     move.b    3(a6),d0
  2052.     and.b    #$0f,d0
  2053.     beq.s    mt_back
  2054.     clr.w    mt_counter
  2055.     move.b    d0,mt_cool+3
  2056. mt_back:rts
  2057.  
  2058. mt_aud1temp:
  2059.     dcb.w    10,0
  2060.     dc.w    1
  2061.     dcb.w    2,0
  2062. mt_aud2temp:
  2063.     dcb.w    10,0
  2064.     dc.w    2
  2065.     dcb.w    2,0
  2066. mt_aud3temp:
  2067.     dcb.w    10,0
  2068.     dc.w    4
  2069.     dcb.w    2,0
  2070. mt_aud4temp:
  2071.     dcb.w    10,0
  2072.     dc.w    8
  2073.     dcb.w    2,0
  2074.  
  2075. mt_partnote:    dc.l    0
  2076. mt_partnrplay:    dc.l    0
  2077. mt_counter:    dc.w    0
  2078. mt_partpoint:    dc.l    0
  2079. mt_samples:    dc.l    0
  2080. mt_sample1:    dcb.l    31,0
  2081. mt_maxpart:    dc.w    0
  2082. mt_dmacon:    dc.w    0
  2083. mt_status:    dc.w    0
  2084.  
  2085. mt_arpeggio:
  2086.     dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c
  2087.     dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d
  2088.     dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0
  2089.     dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097
  2090.     dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000
  2091.  
  2092. mt_data:    
  2093.         incbin    'df1:mod.choice1'
  2094.  
  2095.  
  2096. lrgcircle:
  2097.     dc.l    -8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8
  2098.     dc.l    -8,-8,-8,-8,-8,-8,-8,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7
  2099.     dc.l    -6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4
  2100.     dc.l    -4,-4,-4,-4,-4,-4,-4,-4,-3,-3,-3,-3,-3,-3,-3,-2,-2,-2,-2,-2
  2101.     dc.l    -2,-2,-2,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,1,1,1
  2102.     dc.l    1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3
  2103.     dc.l    3,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5
  2104.     dc.l    6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7
  2105.     dc.l    7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
  2106.     dc.l    7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
  2107.     dc.l    7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6
  2108.     dc.l    5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,3
  2109.     dc.l    3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1
  2110.     dc.l    1,1,1,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-2,-2,-2
  2111.     dc.l    -2,-2,-2,-2,-2,-3,-3,-3,-3,-3,-3,-3,-3,-4,-4,-4,-4,-4,-4,-4
  2112.     dc.l    -4,-5,-5,-5,-5,-5,-5,-5,-5,-5,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6
  2113.     dc.l    -7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-8,-8,-8,-8,-8,-8,-8
  2114.     dc.l    -8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8
  2115.  
  2116.     dc.l    -7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7
  2117.     dc.l    -6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4
  2118.     dc.l    -4,-4,-4,-4,-4,-4,-4,-4,-3,-3,-3,-3,-3,-3,-3,-2,-2,-2,-2,-2
  2119.     dc.l    -2,-2,-2,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0
  2120.  
  2121. medcircle:
  2122.     dc.l    1,1,1,1,1,1,1,1,1,1,1,1,1
  2123.     dc.l    1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
  2124.     dc.l    2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3
  2125.     dc.l    3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
  2126.     dc.l    3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
  2127.     dc.l    3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2
  2128.     dc.l    2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1
  2129.     dc.l    1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0
  2130.     dc.l    0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
  2131.     dc.l    -1,-1,-1,-1,-1,-1,-1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2
  2132.     dc.l    -2,-2,-2,-2,-2,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3
  2133.     dc.l    -3,-3,-3,-3,-3,-3,-3,-3,-3,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4
  2134.     dc.l    -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4
  2135.     dc.l    -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4
  2136.     dc.l    -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3,-3,-3,-3,-3,-3,-3,-3,-3
  2137.     dc.l    -3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2,-2,-2,-2,-2
  2138.     dc.l    -2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1
  2139.     dc.l    -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0
  2140.     dc.l    0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1
  2141.     dc.l    1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
  2142.     dc.l    2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3
  2143.     dc.l    3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
  2144.     dc.l    3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
  2145.  
  2146.     dc.l    2,2,2,2,2,2,2,2,2
  2147.     dc.l    2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1
  2148.     dc.l    1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0
  2149.     dc.l    0,0,0,0,0,0,0,0,0,0
  2150.  
  2151.     dc.l    -1,-1,-1,-1,-1,-1,-1,-2,-2,-2
  2152.     dc.l    -2,-2,-2,-2,-2,-3,-3,-3,-3,-3,-3,-3,-3,-4,-4,-4,-4,-4,-4,-4
  2153.     dc.l    -4,-5,-5,-5,-5,-5,-5,-5,-5,-5,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6
  2154.     dc.l    -7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-8,-8,-8,-8,-8,-8,-8
  2155.     dc.l    -8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8
  2156.  
  2157. vec:    dc.l    0
  2158.  
  2159.  
  2160. Killspr:
  2161.     move.l    #deadspr,d0
  2162.     move.w    d0,sp0+6
  2163.     move.w    d0,sp1+6
  2164.     move.w    d0,sp2+6
  2165.     move.w    d0,sp3+6
  2166.     move.w    d0,sp4+6
  2167.     move.w    d0,sp5+6
  2168.     move.w    d0,sp6+6
  2169.     move.w    d0,sp7+6
  2170.     swap    d0
  2171.     move.w    d0,sp0+2
  2172.     move.w    d0,sp1+2
  2173.     move.w    d0,sp2+2
  2174.     move.w    d0,sp3+2
  2175.     move.w    d0,sp4+2
  2176.     move.w    d0,sp5+2
  2177.     move.w    d0,sp6+2
  2178.     move.w    d0,sp7+2
  2179.     rts
  2180.     even
  2181.  
  2182. scrl:    tst.l    pause
  2183.     beq    .lp
  2184.     sub.l    #1,pause
  2185.     rts
  2186. .lp:    jsr    scrl2
  2187. scrl2:    sub.b    #1,scrlcount
  2188.     bne    nextpix
  2189.     moveq.l    #0,d0
  2190.     lea    mess,a0
  2191.     add.l    messcount,a0
  2192.     move.b    (a0),d0
  2193.     bne    notend
  2194.     move.l    #0,messcount
  2195.     bra    nextpix
  2196. notend:    cmp.b    #$ff,d0
  2197.     bne    notpause
  2198.     move.l    #100,pause
  2199.     add.l    #1,messcount
  2200.     rts
  2201. notpause:
  2202.     add.l    #1,messcount
  2203.     sub.b    #32,d0
  2204.     lea    pixwidth,a0
  2205.     move.b    (a0,d0),scrlcount
  2206.     asl.l    #1,d0
  2207.     lea    chars,a1
  2208.     add.l    d0,a1
  2209.     move.l    scrlbase,a0
  2210.     add.l    #42,a0
  2211.  
  2212.     moveq.l    #2,d0
  2213.  
  2214. .lp:    move.w    (a1),(a0)
  2215.     move.w    118(a1),44(a0)
  2216.     move.w    236(a1),88(a0)
  2217.     move.w    354(a1),132(a0)
  2218.     move.w    472(a1),176(a0)
  2219.  
  2220.     move.w    590(a1),220(a0)
  2221.     move.w    708(a1),264(a0)
  2222.     move.w    826(a1),308(a0)
  2223.     move.w    944(a1),352(a0)
  2224.     move.w    1062(a1),396(a0)
  2225.  
  2226.     move.w    1180(a1),440(a0)
  2227.     move.w    1298(a1),484(a0)
  2228.     move.w    1416(a1),528(a0)
  2229.     move.w    1534(a1),572(a0)
  2230.     move.w    1652(a1),616(a0)
  2231.  
  2232.     move.w    1770(a1),660(a0)
  2233.     move.w    1888(a1),704(a0)
  2234.     move.w    2006(a1),748(a0)
  2235.     move.w    2124(a1),792(a0)
  2236.     move.w    2242(a1),836(a0)
  2237.  
  2238.     move.w    2360(a1),880(a0)
  2239.     move.w    2478(a1),924(a0)
  2240.     move.w    2596(a1),968(a0)
  2241.     move.w    2714(a1),1012(a0)
  2242.     move.w    2832(a1),1056(a0)
  2243.  
  2244.     add.l    #$44c,a0
  2245.     add.l    #$b86,a1
  2246.     dbra    d0,.lp
  2247.  
  2248. nextpix:move.l    scrlbase,d0
  2249.     move.l    d0,d1
  2250.     add.l    #2,d0
  2251.     move.l    d0,$dff050    ;a source IM
  2252.     move.l    d1,$dff054    ;d source
  2253.     move.w    #$0000,$dff064    ;a mod
  2254.     move.w    #$0000,$dff066    ;d mod
  2255.     move.w    #$7fff,$dff044    ;fw mask
  2256.     move.w    #$ffff,$dff046    ;lw mask
  2257.     move.w    #%1111100111110000,$dff040    ;con0
  2258.     move.w    #%1111000000000000,$dff042    ;con1
  2259.     move.w    #%0000011001010110,$dff058    ;size        
  2260.     ;move.w    #$0000,$dff180
  2261.  
  2262.  
  2263.     add.l    #$44c,d1
  2264.     add.l    #$44c,d0
  2265.     
  2266.     move.l    d0,$dff050    ;a source IM
  2267.     move.l    d1,$dff054    ;d source
  2268.     move.w    #%0000011001010110,$dff058    ;size        
  2269.  
  2270.     add.l    #$44c,d1
  2271.     add.l    #$44c,d0
  2272.     
  2273.     move.l    d0,$dff050    ;a source IM
  2274.     move.l    d1,$dff054    ;d source
  2275.     move.w    #%0000011001010110,$dff058    ;size        
  2276.  
  2277.     rts
  2278.  
  2279. messcount:
  2280.     dc.l    0
  2281. pause:    dc.l    0
  2282. scrlcount:
  2283.     dc.b    2
  2284.     even
  2285.  
  2286. pixwidth:                 
  2287.     dc.b    10,6,14,16,16,16,16,7,11,11,16,16,7,16,7,16,16,7
  2288.     dc.b    16,16,16,16,16,16,16,16,6,7
  2289.     dc.b    16,16,16,16,16,16,16,16,16,16,16,16,16,6
  2290.     dc.b    16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
  2291.     dc.b    16,16,16
  2292.  
  2293.  
  2294. mess:    
  2295.     DC.B     "             EXTREME          ",255
  2296.     dc.b    " BRINGS YOU A TEST VERSION OF OUR FUCKING COOL DEMO WHICH WILL BE RELEASED AT THE "
  2297.     DC.B    "PARTY IN NEWCASTLE 1990! THIS IS WIZOID SPEAKING ERE! HEY MYSTIK WHAT DO YA FINK OF THIS THEN!?"
  2298.     DC.B    " QUITE COOL EH???...  HI TO ALL LAMERS IN HULL LIKE:  TOMORROWS WORLD      TONY     THOSE LITTLE TRINITY HOUSE"
  2299.     DC.B    " WANKERS!     MARK.N      PEACOCK!     AND ALL OTHERS.        MEGA COOL GREETS TO:    ANDY.C    ANDY.W    ANDY.N    JAS    AND ALL"
  2300.     DC.B     " OTHERS!!!!                  BYEEEEEEEEEE                      ",0
  2301.         
  2302.     even
  2303.     
  2304. plnaddr:
  2305.     dc.l    bpln1,bpln2,bpln3,bpln4,bpln5,bpln6,bpln7,bpln8
  2306.     dc.l    bpln9,bplna,bplnb,bplnc,bplnd,bplne,bplnf,bpln10
  2307.     dc.l    bpln11,bpln12,bpln13,bpln14,bpln15,bpln16,bpln17,bpln18
  2308.     dc.l    bpln19,bpln1a,bpln1b,bpln1c,bpln1d,bpln1e,bpln1f,bpln20
  2309.     dc.l    bpln21,bpln22,bpln23,bpln24,bpln25,bpln26,bpln27,bpln28
  2310.     dc.l    bpln29,bpln2a,bpln2b,bpln2c,bpln2d,bpln2e,bpln2f,bpln30
  2311.     dc.l    bpln31,bpln32,bpln33,bpln34,bpln35,bpln36,bpln37,bpln38
  2312.     dc.l    bpln39,bpln3a,bpln3b,bpln3c,bpln3d,bpln3e,bpln3f,bpln40
  2313.     dc.l    bpln41,bpln42,bpln43,bpln44,bpln45,bpln46,bpln47,bpln48
  2314.     dc.l    bpln49,bpln4a,bpln4b,bpln4c,bpln4d,bpln4e,bpln4f,bpln50
  2315.     dc.l    bpln51,bpln52,bpln53,bpln54,bpln55,bpln56,bpln57,bpln58
  2316.     dc.l    bpln59,bpln5a,bpln5b,bpln5c,bpln5d,bpln5e,bpln5f,bpln60
  2317.     dc.l    bpln61,bpln62,bpln63,bpln64,bpln65,bpln66,bpln67,bpln68
  2318.     dc.l    bpln69,bpln6a,bpln6b,bpln6c,bpln6d,bpln6e,bpln6f,bpln70
  2319.     dc.l    bpln71,bpln72,bpln73,bpln74,bpln75,bpln76,bpln77,bpln78
  2320.     dc.l    bpln79,bpln7a,bpln7b,bpln7c,bpln7d,bpln7e,bpln7f,bpln80
  2321.  
  2322. squdata:
  2323.     dc.w    0,0,0,0,0,1,1
  2324.     dc.w    1,1,2,2,2,3,3,4,4,5
  2325.     dc.w    5,6,6,7,7,8,9,9,10,11
  2326.     dc.w    12,13,13,14,15,16,17,18,19,20
  2327.     dc.w    21,22,23,24,25,26,28,29,30,31
  2328.     dc.w    33,34,35,37,38,39,41,42,44,45
  2329.     dc.w    47,48,50,52,53,55,57,58,60,62
  2330.     dc.w    64,65,67,69,71,73,75,77,79,81
  2331.     dc.w    83,85,87,89,91,93,96,98,100,102
  2332.     dc.w    105,107,109,112,114,117,119,121,124,127
  2333.  
  2334. squpos:    dc.w    0,20,40,60,80,100,120,140,160,180        ;actual word offsets (+2)'s
  2335. startoff:
  2336.     dc.l    plndat-2
  2337.     dc.l    plndat2-2
  2338.  
  2339. plndat:
  2340.     incbin    bpln1
  2341.     incbin    bpln2
  2342.     incbin    bpln3
  2343.     incbin    bpln4
  2344.     incbin    bpln5
  2345.     incbin    bpln6
  2346.     incbin    bpln7
  2347.     incbin    bpln8
  2348.     incbin    bpln9
  2349.     incbin    bpln10
  2350.     incbin    bpln11
  2351.     incbin    bpln12
  2352.     incbin    bpln13
  2353.     incbin    bpln14
  2354.     incbin    bpln15
  2355.     incbin    bpln16
  2356.  
  2357. plndat2:
  2358.     ds.b    5120*16
  2359. blnk:    ds.b    40
  2360.  
  2361. deadspr:dc.l    0,0,0,0
  2362.  
  2363. mount1:    incbin    'mount1bit'
  2364.     even
  2365. mount2:    incbin    'mount2bit'
  2366.     even
  2367. mask:    incbin    'range2mask'
  2368.     even
  2369. logo:    incbin    'logobit'
  2370.     even
  2371. chars:    incbin    texyraw
  2372.     even
  2373.  
  2374. spcl0:    dc.l    32
  2375. spcl1:    dc.l    32
  2376. spcl2:    dc.l    32
  2377. spcl3:    dc.l    32
  2378. save1:    dc.l    0
  2379. save2:    dc.l    0
  2380. save3:    dc.l    0
  2381. save4:    dc.l    0
  2382. spectab:
  2383.     dc.w    32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17
  2384.     dc.w    16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,1
  2385. spec0:
  2386.     dc.w    $8041,$a000
  2387.     dc.w    $00ff,$0000
  2388.     dc.w    $00ff,$0000
  2389.     dc.w    $00fe,$0001
  2390.     dc.w    $00fc,$003f
  2391.     dc.w    $00fc,$003f
  2392.     dc.w    $00fc,$003f
  2393.     dc.w    $00fc,$003f
  2394.     dc.w    $00fc,$003f
  2395.     dc.w    $00fc,$003f
  2396.     dc.w    $00fc,$003f
  2397.     dc.w    $00fc,$003f
  2398.     dc.w    $00fc,$003f
  2399.     dc.w    $00fc,$003f
  2400.     dc.w    $00fc,$003f
  2401.     dc.w    $00fc,$003f
  2402.     dc.w    $00fc,$003f
  2403.     dc.w    $00fc,$003f
  2404.     dc.w    $00fc,$003f
  2405.     dc.w    $00fc,$003f
  2406.     dc.w    $00fc,$003f
  2407.     dc.w    $00fc,$003f
  2408.     dc.w    $00fc,$003f
  2409.     dc.w    $00fc,$003f
  2410.     dc.w    $00fc,$003f
  2411.     dc.w    $00fc,$003f
  2412.     dc.w    $00fc,$003f
  2413.     dc.w    $00fc,$003f
  2414.     dc.w    $00fc,$003f
  2415.     dc.w    $00fc,$003f
  2416.     dc.w    $00fc,$003f
  2417.     dc.w    $00fc,$003f
  2418.     dc.w    $00fc,$003f
  2419.     dc.w    $0000,$0000
  2420.  
  2421. spec1:
  2422.     dc.w    $8049,$a000
  2423.     dc.w    $00ff,$0000
  2424.     dc.w    $00ff,$0000
  2425.     dc.w    $00fe,$0001
  2426.     dc.w    $00fc,$003f
  2427.     dc.w    $00fc,$003f
  2428.     dc.w    $00fc,$003f
  2429.     dc.w    $00fc,$003f
  2430.     dc.w    $00fc,$003f
  2431.     dc.w    $00fc,$003f
  2432.     dc.w    $00fc,$003f
  2433.     dc.w    $00fc,$003f
  2434.     dc.w    $00fc,$003f
  2435.     dc.w    $00fc,$003f
  2436.     dc.w    $00fc,$003f
  2437.     dc.w    $00fc,$003f
  2438.     dc.w    $00fc,$003f
  2439.     dc.w    $00fc,$003f
  2440.     dc.w    $00fc,$003f
  2441.     dc.w    $00fc,$003f
  2442.     dc.w    $00fc,$003f
  2443.     dc.w    $00fc,$003f
  2444.     dc.w    $00fc,$003f
  2445.     dc.w    $00fc,$003f
  2446.     dc.w    $00fc,$003f
  2447.     dc.w    $00fc,$003f
  2448.     dc.w    $00fc,$003f
  2449.     dc.w    $00fc,$003f
  2450.     dc.w    $00fc,$003f
  2451.     dc.w    $00fc,$003f
  2452.     dc.w    $00fc,$003f
  2453.     dc.w    $00fc,$003f
  2454.     dc.w    $00fc,$003f
  2455.     dc.w    $0000,$0000
  2456.  
  2457. spec2:
  2458.     dc.w    $80cc,$a000
  2459.     dc.w    $00ff,$0000
  2460.     dc.w    $00ff,$0000
  2461.     dc.w    $00fe,$0001
  2462.     dc.w    $00fc,$003f
  2463.     dc.w    $00fc,$003f
  2464.     dc.w    $00fc,$003f
  2465.     dc.w    $00fc,$003f
  2466.     dc.w    $00fc,$003f
  2467.     dc.w    $00fc,$003f
  2468.     dc.w    $00fc,$003f
  2469.     dc.w    $00fc,$003f
  2470.     dc.w    $00fc,$003f
  2471.     dc.w    $00fc,$003f
  2472.     dc.w    $00fc,$003f
  2473.     dc.w    $00fc,$003f
  2474.     dc.w    $00fc,$003f
  2475.     dc.w    $00fc,$003f
  2476.     dc.w    $00fc,$003f
  2477.     dc.w    $00fc,$003f
  2478.     dc.w    $00fc,$003f
  2479.     dc.w    $00fc,$003f
  2480.     dc.w    $00fc,$003f
  2481.     dc.w    $00fc,$003f
  2482.     dc.w    $00fc,$003f
  2483.     dc.w    $00fc,$003f
  2484.     dc.w    $00fc,$003f
  2485.     dc.w    $00fc,$003f
  2486.     dc.w    $00fc,$003f
  2487.     dc.w    $00fc,$003f
  2488.     dc.w    $00fc,$003f
  2489.     dc.w    $00fc,$003f
  2490.     dc.w    $00fc,$003f
  2491.     dc.w    $0000,$0000
  2492.  
  2493. spec3:
  2494.     dc.w    $80d4,$a000
  2495.     dc.w    $00ff,$0000
  2496.     dc.w    $00ff,$0000
  2497.     dc.w    $00fe,$0001
  2498.     dc.w    $00fc,$003f
  2499.     dc.w    $00fc,$003f
  2500.     dc.w    $00fc,$003f
  2501.     dc.w    $00fc,$003f
  2502.     dc.w    $00fc,$003f
  2503.     dc.w    $00fc,$003f
  2504.     dc.w    $00fc,$003f
  2505.     dc.w    $00fc,$003f
  2506.     dc.w    $00fc,$003f
  2507.     dc.w    $00fc,$003f
  2508.     dc.w    $00fc,$003f
  2509.     dc.w    $00fc,$003f
  2510.     dc.w    $00fc,$003f
  2511.     dc.w    $00fc,$003f
  2512.     dc.w    $00fc,$003f
  2513.     dc.w    $00fc,$003f
  2514.     dc.w    $00fc,$003f
  2515.     dc.w    $00fc,$003f
  2516.     dc.w    $00fc,$003f
  2517.     dc.w    $00fc,$003f
  2518.     dc.w    $00fc,$003f
  2519.     dc.w    $00fc,$003f
  2520.     dc.w    $00fc,$003f
  2521.     dc.w    $00fc,$003f
  2522.     dc.w    $00fc,$003f
  2523.     dc.w    $00fc,$003f
  2524.     dc.w    $00fc,$003f
  2525.     dc.w    $00fc,$003f
  2526.     dc.w    $00fc,$003f
  2527.     dc.w    $0000,$0000
  2528.  
  2529.  
  2530.